gpt4 book ai didi

python - 为什么 aiohttp 不允许在 url 路径中使用冒号?

转载 作者:可可西里 更新时间:2023-11-01 17:28:16 25 4
gpt4 key购买 nike

我正在创建一个通过 webhook 获取更新的电报机器人。所以,我成功注册了带有 url 的 webhook,如下所示:

https://my-app.herokuapp.com/123456789:aglbfiwefiuwehwelf  # url with fake token

然后我添加了一个路由来处理更新:

app.router.add_route('POST', '/123456789:aglbfiwefiuwehwelf', webhook)

该机器人托管在 heroku 上,当我运行它时,我在 heroku 日志中看到 404 错误。我在本地进行了测试,发现 aiohttp 无法解析带冒号的 url。我通过使用变量解决了这个问题app.router.add_route('POST', '/{token}', webhook),但我感兴趣的是为什么 aiohttp 实际上不允许在 url 路径中使用冒号?

最佳答案

在 GitHub 中,您可以通过 Blame 历史查看更改代码库特定部分的提交。

  1. 最初在85668a 中只检查它不是None| .
  2. 然而,这太宽松了,因此设置了一个限制,只接受 a2aa20 中的 Python 标识符。 .
  3. 然后似乎需要更多的放松,所以98e3a9通过为点和冒号添加分隔符使规则更加宽松。这是版本 0.18.1。
  4. 添加了下一个破折号 8cc211 .
  5. 最后也允许使用下划线 3fd3d6

所以从 0.18.1 开始,允许使用冒号。我建议你升级你的 aiohttp 依赖。

另外请注意,我不是 100% 确定您是否可以在您的 url 模式中使用括号,请参阅 85668a .

关于python - 为什么 aiohttp 不允许在 url 路径中使用冒号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42124075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com