2016-06-14 66 views
2

我收到來自服務器的使用Python中的請求包的錯誤requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))限制請求僅請求HTTP/1.0 [防止塊錯誤]

從我的理解How to tell the HTTP server to not send chunked encoding後,解決這個問題的方法之一是告訴服務器不要發送分塊編碼,具體做法是在請求中指定HTTP/1.0

我該如何使用Requests包來做這件事?

+0

可能重複[如何在請求中定義HTTP協議版本?](http://stackoverflow.com/questions/31728124/how-to-define-the-http-protocol-version-in-requests) – Anonymous

回答

2

您可以嘗試設置請求所使用的httplib後端中使用的HTTP版本。

在Python 2裏,你能做到這一點,像這樣:

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

,並與Python 3,httplib的改名http.client,所以你會做

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

的請求Issue 2341 GitHub表明至少有一個人這樣做了 - 而且它肯定不會被請求支持。特別是,圖書館將不會確保只發送HTTP/1.0兼容頭文件,因此可能會破壞。

沒有支持的方式來設置HTTP協議版本與請求庫。