2017-07-12 4 views
0

J'essaye de faire une requête http à un service web appelé CloudSight, et je dois transmettre via post une série de paramètres qui, en expliquant la documentation, indiquent qu'ils doivent être placés entre crochets. L'exemple boucle qu'ils offrent est la suivante:Envoi de paramètres sur httpClient avec des crochets

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 

en titane J'ai essayé ce qui suit:

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

Et je reçois l'erreur suivante: [ERREUR]: jeton inattendu, attendu, (43:13)

J'ai aussi essayé les éléments suivants

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

Dans ce cas, l'application s'exécute, mais quand j'appelle le webservice, je reçois une erreur 500. De l'aide? Merci d'avance.

Répondre

1

Si image_request [] sont les noms des paramètres que vous pouvez essayer quelque chose comme ci-dessous

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

OU

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

Vérifiez également que le serveur accepte objet JSON sinon vous devez stringify il.

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

Expliquez-en plus sur les paramètres api si cela ne fonctionne pas.

+0

Merci beaucoup. J'ai placé les noms des paramètres entre guillemets, comme vous me l'avez conseillé et cela a parfaitement fonctionné. –