使用方括号在httpClient上发送post params

时间:2017-07-12 09:56:16

标签: javascript titanium appcelerator cloudsight

我正在尝试向名为CloudSight的Web服务发出http请求,我需要通过post传递一系列参数,这些参数在解释文档时表明它们应该被括起来。 他们提供的卷曲示例如下:

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);

在这种情况下应用程序运行,但是当我调用webservice时,我收到500错误。 一些帮助? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果image_request []是参数名称,那么您可以尝试类似下面的内容

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

OR

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

同时确认服务器接受json对象,否则需要对其进行字符串化。

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

如果api参数不起作用,请详细解释。