分别使用 aiohttp 和 requests 调用 Face++ API,使用相同的参数却返回不同的结果。
使用 aiohttp:
async with session.post(<api_url>, data=payload) as resp:
<something>
使用 requests:
r = requests.post(<api_url>, data=payload)
两者的 payload 完全相同,形如{'api_key': <api_key>, 'api_secret': <api_secret>, 'image_base64': <image_base64>}。然而使用 requests 调用完全正常;使用 aiohttp 却返回 400,错误信息为 MISSING_ARGUMENTS: api_key。
aiohttp 是做了什么或者少做了什么事情吗,为什么会有这样的差异呢,应该如何解决这个问题?提前感谢 V 友们的帮助。
1
niknik 2019-03-02 11:31:37 +08:00
|
2
scholarOfSin OP @niknik 不好意思,没看出这篇文章和我的问题有什么关系
|
3
rawidn 2019-03-02 11:57:57 +08:00 via iPhone
尝试手动指定下 Content-Type
|
4
lxy42 2019-03-02 12:02:58 +08:00 via Android
可能是 data 的编码不一样,一般是 json 或者 form 格式
|
5
lxy42 2019-03-02 12:18:05 +08:00 via Android
requests 默认是 form 格式,使用 json 参数替代 data 参数可以使用 json 格式。aiohttp 不太熟,你查下文档看下是什么编码。
|
6
scholarOfSin OP 找了很久的文档最后还是没有解决,干脆换成 requests-futures,现在心情十分舒畅
|