|
5 | 5 |
|
6 | 6 |
|
7 | 7 | class RequestsSender:
|
8 |
| - def __init__(self, max_timeout=None, proxy=None): |
| 8 | + def __init__(self, max_timeout=None, proxy=None, ip = None): |
9 | 9 | self.session = Session()
|
10 | 10 | self.max_timeout = max_timeout or 10
|
11 | 11 | self.proxy = proxy
|
12 | 12 | self.debug = None
|
13 |
| - |
| 13 | + self.ip = ip |
| 14 | + |
14 | 15 | def send(self, smarty_request):
|
15 |
| - request = build_request(smarty_request) |
| 16 | + request = RequestsSender.build_request(self,smarty_request) |
16 | 17 | prepped_request = self.session.prepare_request(request)
|
| 18 | + |
17 | 19 | prepped_proxies = self.build_proxies()
|
18 | 20 | if self.debug:
|
19 | 21 | print_request_data(prepped_request)
|
@@ -43,21 +45,23 @@ def build_proxies(self):
|
43 | 45 | return {'http': proxy_string, 'https': proxy_string}
|
44 | 46 |
|
45 | 47 |
|
46 |
| -def build_request(smarty_request): |
47 |
| - try: |
48 |
| - request = Request(url=smarty_request.url_prefix, params=smarty_request.parameters) |
49 |
| - request.headers['User-Agent'] = "smartystreets (sdk:python@{})".format(version.__version__) |
50 |
| - request.headers['Content-Type'] = smarty_request.content_type |
51 |
| - if smarty_request.referer: |
52 |
| - request.headers['Referer'] = smarty_request.referer |
53 |
| - if smarty_request.payload: |
54 |
| - request.data = smarty_request.payload |
55 |
| - request.method = 'POST' |
56 |
| - else: |
57 |
| - request.method = 'GET' |
58 |
| - return request |
59 |
| - except AttributeError: |
60 |
| - return smarty_request |
| 48 | + def build_request(self,smarty_request): |
| 49 | + try: |
| 50 | + request = Request(url=smarty_request.url_prefix, params=smarty_request.parameters) |
| 51 | + request.headers['User-Agent'] = "smartystreets (sdk:python@{})".format(version.__version__) |
| 52 | + request.headers['Content-Type'] = smarty_request.content_type |
| 53 | + if smarty_request.referer: |
| 54 | + request.headers['Referer'] = smarty_request.referer |
| 55 | + if self.ip: |
| 56 | + request.headers['X-Forwarded-For'] = self.ip |
| 57 | + if smarty_request.payload: |
| 58 | + request.data = smarty_request.payload |
| 59 | + request.method = 'POST' |
| 60 | + else: |
| 61 | + request.method = 'GET' |
| 62 | + return request |
| 63 | + except AttributeError: |
| 64 | + return smarty_request |
61 | 65 |
|
62 | 66 |
|
63 | 67 | def build_smarty_response(inner_response, error=None):
|
|
0 commit comments