2016-06-14 3 views
2

Ich erhalte den Fehler requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read)) von einem Server, der das Request-Paket in Python verwendet.Anfrage auf HTTP/1.0 beschränken [um Chunking-Fehler zu vermeiden]

Es ist mein Verständnis aus dem Post How to tell the HTTP server to not send chunked encoding, dass eine Möglichkeit ist, um den Server nicht zu chunked Codierung senden, insbesondere durch Angabe von HTTP/1.0 in der Anfrage.

Wie gehe ich mit dem Requests-Paket vor?

+0

Mögliches Duplikat von [Wie definiere ich die HTTP-Protokollversion in Anfragen?] (Http://stackoverflow.com/questions/31728124/how-to-define-the-http-protocol-version-in-requests) – Anonymous

Antwort

2

Sie können versuchen, die verwendete HTTP-Version im Backend httplib zu setzen, das von Requests verwendet wird.

Auf Python 2, können Sie das wie so tun:

import httplib 
httplib.HTTPConnection._http_vsn = 10 
httplib.HTTPConnection._http_vsn_str = 'HTTP/1.0' 

und mit Python 3, httplib http.client umbenannt wurde, so dass Sie

import http.client 
http.client.HTTPConnection._http_vsn = 10 
http.client.HTTPConnection._http_vsn_str = 'HTTP/1.0' 

Issue 2341 auf Anfragen tun würde GitHub zeigt, dass mindestens eine Person es so gemacht hat - und auch, dass es von Anfragen NICHT unterstützt wird. Insbesondere wird sich die Bibliothek nicht bemühen, sicherzustellen, dass nur HTTP/1.0-kompatible Header gesendet werden, so dass Dinge sehr wohl brechen könnten.

Es gibt keine unterstützte Methode zum Festlegen der HTTP-Protokollversion mit der Requests-Bibliothek.

Verwandte Themen