繁体   English   中英

aiohttp:对同一URL的多个请求返回身份验证错误,但URL正确

[英]aiohttp: multiple requests to same URL return authentication error, but the URL is correct

我正在使用以下代码向Strava API发出599个异步请求。 由于某种原因,我对每个人的答复是

{“消息”:“授权错误”,“错误”:[{“资源”:“应用程序”,“字段”:“”,“代码”:“无效”}]}

这是当access_token查询字符串参数无效时通常会出现的错误类型。 但是在这种情况下,令牌是100%正确的:仅在浏览器中手动复制粘贴时,URL返回正确的响应。

错误的可能原因是什么以及如何解决? 可能是aiohttp会话以某种方式弄乱了身份验证过程吗?

注意:出于隐私原因,以下代码中的令牌是伪造的。

import aiohttp
import asyncio

async def fetch(session, url):
    async with session.get(url) as response:
        print(await response.text())

async def main():
    urls = ['''https://www.strava.com/api/v3/activities/
            280816027?include_all_efforts=true&
            access_token=11111111'''] * 599
    async with aiohttp.ClientSession() as session:
        tasks = [
                    asyncio.ensure_future(fetch(session, url))
                    for url in urls
        ]
        await asyncio.gather(*tasks)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

您不应使用多行字符串作为URL,因为它将保留所有空格,结果您将获得错误的URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM