[Fix] 修正了huobiGateway与GET方法相关的签名问题
This commit is contained in:
commit
6542f1ebfa
@ -48,6 +48,7 @@ class Request(object):
|
|||||||
statusCode = 'terminated'
|
statusCode = 'terminated'
|
||||||
else:
|
else:
|
||||||
statusCode = self.response.status_code
|
statusCode = self.response.status_code
|
||||||
|
# todo: encoding error
|
||||||
return ("reuqest : {} {} {} because {}: \n"
|
return ("reuqest : {} {} {} because {}: \n"
|
||||||
"headers: {}\n"
|
"headers: {}\n"
|
||||||
"params: {}\n"
|
"params: {}\n"
|
||||||
|
@ -38,14 +38,21 @@ def _split_url(url):
|
|||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def createSignature(apiKey, method, host, path, secretKey):
|
def createSignature(apiKey, method, host, path, secretKey, getParams=None):
|
||||||
"""创建签名"""
|
"""
|
||||||
sortedParams = (
|
创建签名
|
||||||
|
:param getParams: dict 使用GET方法时附带的额外参数(urlparams)
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
sortedParams = [
|
||||||
("AccessKeyId", apiKey),
|
("AccessKeyId", apiKey),
|
||||||
("SignatureMethod", 'HmacSHA256'),
|
("SignatureMethod", 'HmacSHA256'),
|
||||||
("SignatureVersion", "2"),
|
("SignatureVersion", "2"),
|
||||||
("Timestamp", datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S'))
|
("Timestamp", datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S'))
|
||||||
)
|
]
|
||||||
|
if getParams:
|
||||||
|
sortedParams.extend(getParams.items())
|
||||||
|
sortedParams = list(sorted(sortedParams))
|
||||||
encodeParams = urllib.urlencode(sortedParams)
|
encodeParams = urllib.urlencode(sortedParams)
|
||||||
|
|
||||||
payload = [method, host, path, encodeParams]
|
payload = [method, host, path, encodeParams]
|
||||||
@ -225,16 +232,13 @@ class HuobiRestApi(RestClient):
|
|||||||
request.headers = {
|
request.headers = {
|
||||||
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"
|
||||||
}
|
}
|
||||||
|
paramsWithSignature = createSignature(self.apiKey,
|
||||||
additionalParams = createSignature(self.apiKey,
|
|
||||||
request.method,
|
request.method,
|
||||||
self.signHost,
|
self.signHost,
|
||||||
request.path,
|
request.path,
|
||||||
self.apiSecret)
|
self.apiSecret,
|
||||||
if not request.params:
|
request.params)
|
||||||
request.params = additionalParams
|
request.params = paramsWithSignature
|
||||||
else:
|
|
||||||
request.params.update(additionalParams)
|
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
request.headers['Content-Type'] = 'application/json'
|
request.headers['Content-Type'] = 'application/json'
|
||||||
|
Loading…
Reference in New Issue
Block a user