Skip to content

Instantly share code, notes, and snippets.

@criloz
Created March 23, 2015 20:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save criloz/743898ed5184ad7b9fd2 to your computer and use it in GitHub Desktop.
Save criloz/743898ed5184ad7b9fd2 to your computer and use it in GitHub Desktop.
class Response(dict):
"""An object more like email.Message than httplib.HTTPResponse."""
"""Is this response from our local cache"""
fromcache = False
"""HTTP protocol version used by server. 10 for HTTP/1.0, 11 for HTTP/1.1. """
version = 11
"Status code returned by server. "
status = 200
"""Reason phrase returned by server."""
reason = "Ok"
previous = None
def __init__(self, response):
for key, value in response.headers.items():
self[key.lower()] = value
self.status = response.status_code
self['status'] = str(self.status)
self.reason = response.reason
def __getattr__(self, name):
if name == 'dict':
return self
else:
raise AttributeError, name
class Http(object):
def __init__(self):
self._resquest = Session()
self._resquest.mount('http://', adapters.HTTPAdapter(pool_connections=20, pool_maxsize=20))
self._resquest.mount('https://', adapters.HTTPAdapter(pool_connections=20, pool_maxsize=20))
def request(self, uri, method="GET", body=None, headers=None, redirections=DEFAULT_MAX_REDIRECTS, connection_type=None):
res = self._resquest.request(method, uri, data=body, headers=headers)
r = Response(res)
return r, res.content
class httplib2(object):
@staticmethod
def Http():
return Http()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment