
分别使用 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 年 3 月 2 日 |
2 scholarOfSin OP @niknik 不好意思,没看出这篇文章和我的问题有什么关系 |
3 rawidn 2019 年 3 月 2 日 via iPhone 尝试手动指定下 Content-Type |
4 lxy42 2019 年 3 月 2 日 via Android 可能是 data 的编码不一样,一般是 json 或者 form 格式 |
5 lxy42 2019 年 3 月 2 日 via Android requests 默认是 form 格式,使用 json 参数替代 data 参数可以使用 json 格式。aiohttp 不太熟,你查下文档看下是什么编码。 |
6 scholarOfSin OP 找了很久的文档最后还是没有解决,干脆换成 requests-futures,现在心情十分舒畅 |