2017-07-12 63 views
0

我想向一個名爲CloudSight的web服務發出一個http請求,並且我需要通過post傳遞一系列參數,在解釋文檔時指示它們應該被括起來。 他們提供的捲曲示例如下:用方括號在httpClient上發送params

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 

鈦我曾嘗試以下:

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

在這種情況下應用程序運行,但是當我調用web服務時,我收到500錯誤。 有些幫助? 在此先感謝。

回答

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參數的更多信息,如果它不起作用。

+0

非常感謝。我已經將參數的名稱放在引號中,正如您建議的那樣,它的工作完美無缺。 –