[106] | 1 | from urllib2 import BaseHandler
|
---|
| 2 |
|
---|
| 3 | from _request import Request
|
---|
| 4 | from _response import upgrade_response
|
---|
| 5 | from _util import deprecation
|
---|
| 6 |
|
---|
| 7 |
|
---|
| 8 | class HTTPRequestUpgradeProcessor(BaseHandler):
|
---|
| 9 | # upgrade urllib2.Request to this module's Request
|
---|
| 10 | # yuck!
|
---|
| 11 | handler_order = 0 # before anything else
|
---|
| 12 |
|
---|
| 13 | def http_request(self, request):
|
---|
| 14 | if not hasattr(request, "add_unredirected_header"):
|
---|
| 15 | newrequest = Request(request.get_full_url(), request.data,
|
---|
| 16 | request.headers)
|
---|
| 17 | try: newrequest.origin_req_host = request.origin_req_host
|
---|
| 18 | except AttributeError: pass
|
---|
| 19 | try: newrequest.unverifiable = request.unverifiable
|
---|
| 20 | except AttributeError: pass
|
---|
| 21 | try: newrequest.visit = request.visit
|
---|
| 22 | except AttributeError: pass
|
---|
| 23 | request = newrequest
|
---|
| 24 | return request
|
---|
| 25 |
|
---|
| 26 | https_request = http_request
|
---|
| 27 |
|
---|
| 28 |
|
---|
| 29 | class ResponseUpgradeProcessor(BaseHandler):
|
---|
| 30 | # upgrade responses to be .close()able without becoming unusable
|
---|
| 31 | handler_order = 0 # before anything else
|
---|
| 32 |
|
---|
| 33 | def __init__(self):
|
---|
| 34 | deprecation(
|
---|
| 35 | "See http://wwwsearch.sourceforge.net/mechanize/doc.html#seekable")
|
---|
| 36 |
|
---|
| 37 | def any_response(self, request, response):
|
---|
| 38 | if not hasattr(response, 'closeable_response'):
|
---|
| 39 | response = upgrade_response(response)
|
---|
| 40 | return response
|
---|