RSA2 验签后接口调用

该代码段展示了一个使用Python的requests库发送带有RSA2签名的HTTPPOST请求的函数。函数通过multiprocessing创建300个进程来并行执行请求,主要参数包括URL、应用ID、私钥、请求参数和时间戳。如果请求成功,它将解析响应数据;否则,打印错误信息。
摘要由CSDN通过智能技术生成
import json
import requests
import time
import sign_key
import multiprocessing


def send_post():
    url = "http://192.168.0.99:7081"
    # 应用ID和私钥
    app_id = "202304211098921821299802112"
    with open('private_key.pem', 'rb') as f:
        key = f.read()
    app_private_key = key
    # 请求参数
    params = {
        "charset": "utf-8",
        "biz_content": '{"attendancePeriodName":"","endTime":"2023-12-08 10:34:00","startTime":"2022-11-08 10:34:00",'
                       '"tenantId":"30","userCode":"20180219","userId":""}',
        "method": "dorm.selfChoice.personAttendanceRecordList",
        "format": "json",
        "app_id": app_id,
        "sign_type": "RSA2",
        "version": "1.0",
    }
    # 时间戳
    timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    params["timestamp"] = timestamp
    # 生成待签名字符串
    data = "&".join([f"{key}={params[key]}" for key in sorted(params)])
    # 计算签名
    private_key = sign_key.rsa256_sign(data, app_private_key, 'utf-8')
    sign = private_key
    # 添加签名,发送请求
    params["sign"] = sign
    print(sign)
    start_time = time.time()
    response = requests.post(url, data=params)
    end_time = time.time()
    print("函数调用【{}】耗时 【{}】秒".format(response, end_time - start_time))
    print(response.text)

    if response.status_code == requests.codes.ok:
        data = json.loads(response.text)
        # 处理返回的数据
    else:
        print(f"请求失败,错误码:{response.status_code}")
        print(f"错误信息:{response.text}")


if __name__ == "__main__":
    processes = []
    for i in range(300):
        processes.append(multiprocessing.Process(target=send_post()))

    for i in range(300):
        processes[i].start()

    for i in range(300):
        processes[i].join()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值