instalar example python http header suds

example - suds python 3



Cómo agregar encabezados http en espuma 0.3.6? (2)

Cuando crea el abridor en urllib2, puede usar algunos controladores para hacer lo que quiera. Por ejemplo, si desea agregar un nuevo encabezado en espuma, debe hacer algo como esto:

https = suds.transport.https.HttpTransport() opener = urllib2.build_opener(HTTPSudsPreprocessor) https.urlopener = opener suds.client.Client(URL, transport = https)

donde HTTPSudsPreprocessor es su propio controlador, y debería verse así:

class HTTPSudsPreprocessor(urllib2.BaseHandler): def http_request(self, req): req.add_header(''Content-Type'', ''text/xml; charset=utf-8'') return req https_request = http_request

Los métodos que debe anular dependen de lo que desee hacer. Consulte la documentación de urllib2 en Python.org

Tengo una aplicación en python 2.5 que envía datos a través de espuma 0.3.6.

El problema es que los datos no contienen caracteres ascii, por lo que necesito que exista el siguiente encabezado en el mensaje de jabón:

Content-Type = "text / html; charset =" utf-8 "

y el encabezado que existe en el mensaje SOAP es simplemente:

Content-Type = "text / html"

Sé que está fijado en espuma 0.4, pero requiere Python2.6 y NECESITO Python2.5 porque uso CentOS y necesita esa versión. Entonces la pregunta es:

¿Cómo podría cambiar o agregar nuevos encabezados HTTP a un mensaje SOAP?


Al menos en suds 0.4 (¿quizás antes?) Los encabezados HTTP también se pueden pasar al constructor o a través del método set_options :

client = suds.client.Client(url, headers={''key'': ''value''}) client.set_options(headers={''key2'': ''value''})