headers = {
'content-type': 'application/json',
'Extra-Data': {"is_weapp":1,"sid":"xxx","version":"2.75.5","client":"weapp","bizEnv":"wsc"},
'Accept-Encoding': 'gzip,compress,br,deflate',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.5(0x18000528) NetType/WIFI Language/zh_CN',
}
。。。。。
req = requests.post(url=url, headers=headers, data=data)
问题就出在extra-data后的嵌套字典里
这是不把嵌套字典转换string的报错内容:
requests.exceptions.InvalidHeader: Value for header {Extra-Data: {'is_weapp': 1, 'sid': 'xxx', 'version': '2.75.5', 'client': 'weapp', 'bizEnv': 'wsc'}} must be of type str or bytes, not <class 'dict'>
这是转换string后返回值:
{"code":0,"msg":"ok","data":{"code":500,"success":false}} 正常返回值中success=true
小白不知道怎么解决了
headers中是以字典的健值对形式存在的,所以'Extra-Data'后面对应的应该是一个字符串,用字典会被requests库报无效请求头错误。
如在转换成字符串后仍得不到返回值,可能还需传cookie等其他参数
headers中的健值只能是字符串,你这样写试试
'Extra-Data': r'{xxxxxxx}',
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632