Question

J'ai des problèmes d'envoi d'un put utilisant le module de requêtes. J'ai été en mesure de faire un succès avec succès et d'utiliser un client de repos avancé pour Chrome, j'ai vérifié que ma charge utile est correcte. Cependant, j'obtiens une erreur générique disant que j'envoie une mauvaise demande. Je suis nouveau dans les appels de service Web et je ne sais pas si ce que je fais est complètement faux, mais c'est ce que j'essaie:

import requests
payload = {'payload': '<request>some request xml</request>'}
headers = {'content-type': 'application/xml'}

r = requests.put('https://the.url', data=payload, auth=HTTPBasicAuth('user', 'password'), headers=headers)

Je sais que 100% le XML, l'URL et les informations d'identification sont corrects, alors pourquoi ce qui précède ne fonctionne-t-il pas? La seule chose à laquelle je peux penser, c'est que la clé de la charge utile doit être quelque chose de spécifique, mais je ne sais pas si c'est correct ou comment comprendre ce qu'il devrait être ...

La réponse est un «HTTP Status 400 - Bad Request»

Était-ce utile?

La solution

Après avoir creusé plus dans le Guide de démarrage rapide J'ai trouvé cette information Tid-bit:

Il y a de nombreuses fois que vous souhaitez envoyer des données qui ne sont pas codées au formulaire. Si vous passez une chaîne au lieu d'un dict, ces données seront publiées directement.

J'ai essayé à l'origine mais apparemment j'avais une faute de frappe parce que l'erreur que j'ai obtenue a indiqué que je devais passer dans un dict.

Quoi qu'il en soit, le passage du XML droit au lieu d'un dictionnaire a résolu le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top