欢迎来到银盒子的世界~
1.从a-zA-Z0-9生成指定数量的随机字符:(用于一些请求头里,需要拼接一个多少位的随机字符串)
ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8)) print ran_str
2.一般请求url的签名算法
sid = settings.cloopen_sub_sid if sub else settings.cloopen_sid # 配置信息 auth_token = settings.cloopen_sub_auth_token if sub else \ settings.cloopen_auth_token # 配置信息 url = '/'.join(( settings.cloopen_base_url, settings.cloopen_version, ('Sub' if sub else '') + 'Accounts', sid, uri)) 参数拼接成字符串 timestamp = datetime.utcnow().strftime('%Y%m%d%H%M%S') params = {'sig': hashlib.md5((sid + auth_token + timestamp) .encode('utf-8')).hexdigest().upper()} data = json.dumps(data).replace(' ', '') headers = { aiohttp.hdrs.ACCEPT: 'application/json', aiohttp.hdrs.CONTENT_TYPE: 'application/json;charset=utf-8', aiohttp.hdrs.AUTHORIZATION: base64.b64encode( (sid + ':' + timestamp).encode('utf-8')).decode('utf-8'), } args = dict(params=params, data=data, headers=headers) async with aiohttp.ClientSession() as session: async with session.post(url, **args) as resp: if resp.status == 200: return await resp.json() else: raise RuntimeError(resp.status)
文章评论
发布于 2020-10-16 15:55:04 回复