Pregunta

Tengo problemas para enviar una venta mediante el módulo de solicitudes.He podido realizar una obtención con éxito y utilizando un cliente de descanso avanzado para Chrome he verificado que mi carga útil es correcta.Sin embargo, aparece un error genérico que dice que envío una solicitud incorrecta.Soy nuevo en las llamadas al servicio web y no estoy seguro de si lo que estoy haciendo es completamente incorrecto, pero esto es lo que estoy intentando:

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)

Sé que el 100% de XML, URL y credenciales son correctos, entonces, ¿por qué no funciona lo anterior?Lo único que se me ocurre es que la clave de la carga útil debe ser algo específico, pero no estoy seguro de si es correcto o cómo averiguar cuál debería ser ...

La respuesta es 'HTTP Status 400 - Bad Request'

¿Fue útil?

Solución

Después de profundizar más en Inicio rápidoGuía Encontré esta pequeña información:

Hay muchas ocasiones en las que desea enviar datos que no están codificados en formato.Si pasa una cadena en lugar de un dict, esos datos se publicarán directamente.

Probé esto originalmente, pero aparentemente tuve un error tipográfico porque el error que obtuve indicaba que necesitaba pasar un dictado.

Independientemente, pasar el XML directo en lugar de un diccionario ha solucionado el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top