Domanda

Sto usando un server con basehttp con Python.

Ricevo una richiesta da un client basato su http / 1.1

Tuttavia, quando risponderò al cliente indietro con la mia risposta, il cliente rifiuta di accettare la mia risposta. Su ulteriori analisi ho visto che la versione HTTP che sto inviando è http / 1.0. Tuttavia, non so come è impostato.

L'errore sul lato client è.

Original message: not well-formed (invalid token): line 2, column 4 
Response 
HTTP/1.0 200 OK
Server: BaseHTTP/0.3 Python/2.7.5
Date: Wed, 30 Jul 2014 15:11:42 GMT
Content-type: application/soap+xml; charset=utf-8
Content-length: 823
.

Sto impostando l'intestazione nel modo seguente:

self.send_response(200)
self.send_header("Content-type", "application/soap+xml; charset=utf-8")
self.send_header("Content-length", content_length)
self.end_headers()
.

È stato utile?

Soluzione

Imposta il Attributo protocol_version sulla tua classe del gestore:

handler.protocol_version = 'HTTP/1.1'
.

Ciò richiede di impostare un'intestazione Content-Length, che già fai.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top