67 lines
2.3 KiB
Python
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
|