Files
tools/change_font/util/send_sign_http.py
flt6 f6658f3d52 First commit
Former-commit-id: 424079609133edcc501ae185509836ee1181a02c
2022-06-12 19:47:20 +08:00

67 lines
2.3 KiB
Python

from util.http import send_patch,send_post,send_delete,send_get,send_put
from util.sign_client import get_signature
from util.url import encode,url_format
def send_request(
access_key_id,
access_key_secret,
timestamp,
url,
url_params,
body_params,
request_method,
content_type
) -> str:
if access_key_id is None or len(access_key_id) == 0:
raise RuntimeError('参数access_key_id不能为空')
if access_key_secret is None or len(access_key_secret) == 0:
raise RuntimeError('参数access_key_secret不能为空')
if timestamp is None or len(timestamp) == 0:
raise RuntimeError('参数timestamp不能为空')
if url is None or len(url) == 0:
raise RuntimeError('参数url不能为空')
if url_params is None:
raise RuntimeError('参数url_params不能为空')
if body_params is None:
raise RuntimeError('参数body_params不能为空')
if request_method is None or len(request_method) == 0:
raise RuntimeError('参数request_method不能为空')
if content_type is None or len(content_type) == 0:
raise RuntimeError('参数content_type不能为空')
url_params['access_key_id'] = access_key_id
url_params['timestamp'] = timestamp
signature, signature_nonce = get_signature(
url_params,
body_params,
request_method,
content_type,
access_key_secret)
url_params['signature'] = encode(signature)
url_params['signature_nonce'] = signature_nonce
url_params['timestamp'] = timestamp
url = url + '?' + url_format(url_params)
headers = {
'content-type': content_type
}
result = None
if request_method == 'POST':
result = send_post(url, request_body=body_params, headers=headers)
elif request_method == 'PATCH':
result = send_patch(url, request_body=body_params, headers=headers)
elif request_method == 'PUT':
result = send_put(url, request_body=body_params, headers=headers)
elif request_method == 'GET':
result = send_get(url, params=None, headers=headers)
elif request_method == 'DELETE':
result = send_delete(url, headers=headers)
else:
raise RuntimeError('支持[GET、POST、PUT、PATCH、DELETE]请求方式')
return result