mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
Add the ability to turn off HTTP 0.9 support.
While debugging an issue I discovered requests was coming back with 200 response, when it really shouldn't have. It turns out this happened for two reasons: the jetty server running the app was rather lame and didn't fail the request as a Bad Request, and httplib was happy to let malformed data through and call it success. It turns out httplib's strict flag controls this behavior of whether or not to validate the status line. The underlying urllib3 supports the concept as well. There was a bug there to that is now fixed upstream. The last step is exposing this through requests. This introduces a supports_http0.9 flag to help control this behavior. It defaults to to True to preserve the current behavior. Setting it to False will allow the underlying HTTPConnection to validate the status line.
This commit is contained in:
+1
-1
@@ -44,7 +44,7 @@ def request(method, url, **kwargs):
|
||||
adhoc_session = False
|
||||
session = kwargs.pop('session', None)
|
||||
if session is None:
|
||||
session = sessions.session()
|
||||
session = sessions.session(config=kwargs.get('config', None))
|
||||
adhoc_session = True
|
||||
|
||||
try:
|
||||
|
||||
@@ -48,3 +48,4 @@ defaults['keep_alive'] = True
|
||||
defaults['encode_uri'] = True
|
||||
defaults['trust_env'] = True
|
||||
defaults['store_cookies'] = True
|
||||
defaults['support_http0.9'] = True
|
||||
|
||||
@@ -98,7 +98,8 @@ class Session(object):
|
||||
def init_poolmanager(self):
|
||||
self.poolmanager = PoolManager(
|
||||
num_pools=self.config.get('pool_connections'),
|
||||
maxsize=self.config.get('pool_maxsize')
|
||||
maxsize=self.config.get('pool_maxsize'),
|
||||
strict=not self.config.get('support_http0.9')
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
|
||||
Reference in New Issue
Block a user