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
|
---|