Отправлять пост-параметры на httpClient в квадратных скобках

Я пытаюсь сделать http-запрос к веб-сервису под названием CloudSight, и мне нужно передать через сообщение ряд параметров, которые при объяснении документации указывают, что они должны быть заключены в квадратные скобки. Пример завитка, который они предлагают, выглядит следующим образом:

Curl -i -X ??POST \
-H "Authorization: CloudSight [key]" \
-F "image_request [image] = @ Image.jpg" \
-F "image_request [locale] = en-US"
-F "image_request [language] = en" \
Https://api.cloudsightapi.com/image_requests

В Titanium я пробовал следующее:

Var request = {
Image_request['image']: self.image,
Image_request['locale']: 'es-ES',
Image_request['language']: 'is',
};
...
Xhr.send (request);

И я получаю следующую ошибку: [ОШИБКА]: ожидается неожиданный токен (43:13)

Я также попробовал следующее

Var myArray = [];
MyArray['image'] = self.image;
MyArray['locale'] = 'es-ES';
MyArray['language'] = 'es';
Var request = {
Image_request: myArray
};
...
Xhr.send (request);

В этом случае приложение запускается, но когда я звоню в веб-службу, я получаю ошибку 500. Некоторая помощь? Заранее спасибо.

1 ответ

Решение

Если image_request [] - это имя параметра, то вы можете попробовать что-то вроде ниже

Var request = {
"image_request[image]": self.image,
"image_request[locale]": 'es-ES',
"image_request[language]": 'es',
};

ИЛИ ЖЕ

Var request = {
"image": self.image,
"locale": 'es-ES',
"language": 'es',
};

Также подтвердите, что сервер принимает объект json, в противном случае вам нужно его преобразовать в строку.

Xhr.send (JSON.stringify(request));

Объясните больше о параметрах API, если он не работает.

Другие вопросы по тегам