|
1 | | -import requests |
| 1 | +import urllib3 |
2 | 2 |
|
3 | 3 | from consul import base |
4 | 4 |
|
5 | 5 |
|
6 | 6 | __all__ = ['Consul'] |
| 7 | +JSON_HEADER = {'Content-Type': 'application/json'} |
7 | 8 |
|
8 | 9 |
|
9 | 10 | class HTTPClient(base.HTTPClient): |
10 | 11 | def __init__(self, *args, **kwargs): |
11 | 12 | super(HTTPClient, self).__init__(*args, **kwargs) |
12 | | - self.session = requests.session() |
| 13 | + cert_file = kwargs.get('cert', None) |
| 14 | + cert_reqs = 'CERT_REQUIRED' if kwargs.get('verify', False) else None |
| 15 | + self.session = urllib3.PoolManager(cert_file=cert_file, cert_reqs=cert_reqs) |
13 | 16 |
|
14 | 17 | def response(self, response): |
15 | | - response.encoding = 'utf-8' |
16 | 18 | return base.Response( |
17 | | - response.status_code, response.headers, response.text) |
| 19 | + response.status, response.headers, response.data.decode('utf-8')) |
18 | 20 |
|
19 | 21 | def get(self, callback, path, params=None): |
20 | 22 | uri = self.uri(path, params) |
21 | 23 | return callback(self.response( |
22 | | - self.session.get(uri, verify=self.verify, cert=self.cert))) |
| 24 | + self.session.request('GET', uri))) |
23 | 25 |
|
24 | 26 | def put(self, callback, path, params=None, data=''): |
25 | 27 | uri = self.uri(path, params) |
26 | 28 | return callback(self.response( |
27 | | - self.session.put(uri, data=data, verify=self.verify, |
28 | | - cert=self.cert))) |
| 29 | + self.session.request('PUT', uri, body=data, headers=JSON_HEADER))) |
29 | 30 |
|
30 | 31 | def delete(self, callback, path, params=None): |
31 | 32 | uri = self.uri(path, params) |
32 | 33 | return callback(self.response( |
33 | | - self.session.delete(uri, verify=self.verify, cert=self.cert))) |
| 34 | + self.session.request('DELETE', uri))) |
34 | 35 |
|
35 | 36 | def post(self, callback, path, params=None, data=''): |
36 | 37 | uri = self.uri(path, params) |
37 | 38 | return callback(self.response( |
38 | | - self.session.post(uri, data=data, verify=self.verify, |
39 | | - cert=self.cert))) |
| 39 | + self.session.request('POST', uri, body=data, headers=JSON_HEADER))) |
40 | 40 |
|
41 | 41 |
|
42 | 42 | class Consul(base.Consul): |
|
0 commit comments