限制请求仅请求HTTP/1.0 [防止块错误]

问题描述:

我收到来自服务器的使用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

您可以尝试设置请求所使用的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协议版本与请求库。