From 6b47843b46c33a1b03c85a7be3ff7cf454340a5b Mon Sep 17 00:00:00 2001 From: nickkking <42115833+nickkking@users.noreply.github.com> Date: Mon, 29 Mar 2021 09:20:29 +0800 Subject: [PATCH 1/4] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 国内使用socks5代理调用api requests.get()添加proxies参数实现代理访问 --- client.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 client.py diff --git a/client.py b/client.py new file mode 100644 index 00000000..1ab9029e --- /dev/null +++ b/client.py @@ -0,0 +1,65 @@ +import requests +import json +from . import consts as c, utils, exceptions + + +class Client(object): + + def __init__(self, api_key, api_secret_key, passphrase, use_server_time=False): + + self.API_KEY = api_key + self.API_SECRET_KEY = api_secret_key + self.PASSPHRASE = passphrase + self.use_server_time = use_server_time + + def _request(self, method, request_path, params): + + if method == c.GET: + request_path = request_path + utils.parse_params_to_str(params) + # url + url = c.API_URL + request_path + + timestamp = utils.get_timestamp() + + # sign & header + if self.use_server_time: + timestamp = self._get_timestamp() + + body = json.dumps(params) if method == c.POST else "" + + sign = utils.sign(utils.pre_hash(timestamp, method, request_path, str(body)), self.API_SECRET_KEY) + header = utils.get_header(self.API_KEY, sign, timestamp, self.PASSPHRASE) + + # send request + response = None + + print("url:", url) + # print("headers:", header) + print("body:", body) +#proxies parameter + if method == c.GET: + response = requests.get(url, headers=header,proxies={'http': 'http://127.0.0.1:1087','https': 'https://127.0.0.1:1087'}) + elif method == c.POST: + response = requests.post(url, data=body, headers=header,pproxies={'http': 'http://127.0.0.1:1087','https': 'https://127.0.0.1:1087'}) + + # exception handle + # print(response.headers) + + if not str(response.status_code).startswith('2'): + raise exceptions.OkexAPIException(response) + + return response.json() + + def _request_without_params(self, method, request_path): + return self._request(method, request_path, {}) + + def _request_with_params(self, method, request_path, params): + return self._request(method, request_path, params) + + def _get_timestamp(self): + url = c.API_URL + c.SERVER_TIMESTAMP_URL + response = requests.get(url) + if response.status_code == 200: + return response.json()['ts'] + else: + return "" From 815bab03838a17b4baae03c09ba53d86dc628578 Mon Sep 17 00:00:00 2001 From: nickkking <42115833+nickkking@users.noreply.github.com> Date: Mon, 29 Mar 2021 09:22:02 +0800 Subject: [PATCH 2/4] Delete client.py --- okex-python-sdk-api-v5/okex/client.py | 66 --------------------------- 1 file changed, 66 deletions(-) delete mode 100644 okex-python-sdk-api-v5/okex/client.py diff --git a/okex-python-sdk-api-v5/okex/client.py b/okex-python-sdk-api-v5/okex/client.py deleted file mode 100644 index 7e91174d..00000000 --- a/okex-python-sdk-api-v5/okex/client.py +++ /dev/null @@ -1,66 +0,0 @@ -import requests -import json -from . import consts as c, utils, exceptions - - -class Client(object): - - def __init__(self, api_key, api_secret_key, passphrase, use_server_time=False, flag='1'): - - self.API_KEY = api_key - self.API_SECRET_KEY = api_secret_key - self.PASSPHRASE = passphrase - self.use_server_time = use_server_time - self.flag = flag - - def _request(self, method, request_path, params): - - if method == c.GET: - request_path = request_path + utils.parse_params_to_str(params) - # url - url = c.API_URL + request_path - - timestamp = utils.get_timestamp() - - # sign & header - if self.use_server_time: - timestamp = self._get_timestamp() - - body = json.dumps(params) if method == c.POST else "" - - sign = utils.sign(utils.pre_hash(timestamp, method, request_path, str(body)), self.API_SECRET_KEY) - header = utils.get_header(self.API_KEY, sign, timestamp, self.PASSPHRASE, self.flag) - - # send request - response = None - - print("url:", url) - # print("headers:", header) - print("body:", body) - - if method == c.GET: - response = requests.get(url, headers=header) - elif method == c.POST: - response = requests.post(url, data=body, headers=header) - - # exception handle - # print(response.headers) - - if not str(response.status_code).startswith('2'): - raise exceptions.OkexAPIException(response) - - return response.json() - - def _request_without_params(self, method, request_path): - return self._request(method, request_path, {}) - - def _request_with_params(self, method, request_path, params): - return self._request(method, request_path, params) - - def _get_timestamp(self): - url = c.API_URL + c.SERVER_TIMESTAMP_URL - response = requests.get(url) - if response.status_code == 200: - return response.json()['ts'] - else: - return "" From 6231edda5ddce7e50d83153da2403a81ad3c3da8 Mon Sep 17 00:00:00 2001 From: nickkking <42115833+nickkking@users.noreply.github.com> Date: Mon, 29 Mar 2021 09:24:18 +0800 Subject: [PATCH 3/4] Rename client.py to okex-python-sdk-api-v5/okex/client.py --- client.py => okex-python-sdk-api-v5/okex/client.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename client.py => okex-python-sdk-api-v5/okex/client.py (100%) diff --git a/client.py b/okex-python-sdk-api-v5/okex/client.py similarity index 100% rename from client.py rename to okex-python-sdk-api-v5/okex/client.py From ab05e6f66f916f5b2558a36130f13cba8edc4933 Mon Sep 17 00:00:00 2001 From: nickkking <42115833+nickkking@users.noreply.github.com> Date: Mon, 29 Mar 2021 09:25:25 +0800 Subject: [PATCH 4/4] Update client.py --- okex-python-sdk-api-v5/okex/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/okex-python-sdk-api-v5/okex/client.py b/okex-python-sdk-api-v5/okex/client.py index 1ab9029e..9e62c970 100644 --- a/okex-python-sdk-api-v5/okex/client.py +++ b/okex-python-sdk-api-v5/okex/client.py @@ -36,7 +36,7 @@ def _request(self, method, request_path, params): print("url:", url) # print("headers:", header) print("body:", body) -#proxies parameter +#proxies parameter e.g.1087 if method == c.GET: response = requests.get(url, headers=header,proxies={'http': 'http://127.0.0.1:1087','https': 'https://127.0.0.1:1087'}) elif method == c.POST: