问题标签 [aiohttp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2332 浏览

python-3.x - aiohttp 客户端未正确处理 cookie

我正在尝试将 cookie 与 aiohttp.ClientSession 一起使用,但它似乎没有跨多个请求处理 cookie。那或者我没有正确使用它。

我有一个简单的服务器,它在客户端上保存一个 cookie。从浏览器访问时,这工作正常。

服务器代码:(从这里修改)

从浏览器访问时,我得到:

现在,我正在尝试在当前无法正常工作的 python 客户端中模仿这种行为。我知道我没有将 cookie 保存到文件中,但我在同一个会话中尝试了多个请求,所以这应该可以正常工作吗?

客户端会话中的 cookie 似乎没有跨多个请求持续存在。

客户端代码:

当我运行客户端代码时,我得到:

0 投票
2 回答
4188 浏览

python - 使用 aiohttp/asyncio 发出 100 万个请求 - 字面意思

我跟进了本教程:https ://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html当我处理 50 000 个请求时一切正常。但我需要进行 100 万次 API 调用,然后我对这段代码有疑问:

因为 Python 需要创建 100 万个任务,所以它基本上只是滞后,然后Killed在终端中打印消息。有没有办法使用由预制的 URL 集(或列表)生成的生成器?谢谢。

0 投票
2 回答
4537 浏览

python - Asyncio 和 rabbitmq (asynqp):如何同时从多个队列消费

我正在尝试使用 python、asyncio 和asynqp同时使用多个队列。

我不明白为什么我的asyncio.sleep()函数调用没有任何效果。代码不会停在那里。公平地说,我实际上不明白回调是在哪个上下文中执行的,以及我是否可以完全控制事件循环(这样asyncio.sleep()调用才有意义)。

如果我必须在回调函数中使用aiohttp.ClientSession.get()函数调用怎么办?process_msg我不能这样做,因为它不是协程。必须有一种方法超出我目前对 asyncio 的理解。

0 投票
1 回答
784 浏览

python - aiohttp应用进程中监听ZeroMQ

我在后面运行aiohttp应用程序。在我的应用程序的初始化模块中,我不使用运行应用程序,而只是创建一个实例,该实例将被导入以在每个工作人员创建的过程中运行它。因此创建了一些工作进程,在其中创建事件循环,然后在这些循环中运行应用程序的请求处理程序。Gunicornnginxweb.run_app(app)GunicornGunicornGunicorn

我的aiohttp应用程序有一组已连接的WebSockets(移动应用程序客户端),我想在由Gunicorn. 我想通知所有 WebSockets连接到所有应用程序进程的人。因此,我使用创建某种上游代理,ZeroMQ并且我想使用zmq.SUB每个应用程序进程中的套接字订阅它。

...所以基本上我想在每个应用程序工作人员中实现这样的目标:

如何ZeroMQ在应用程序中侦听代理aiohttp以将消息转发到WebSockets

我可以在哪里将此代码放在事件循环中的后台运行以及如何在aiohttp应用程序的生命周期中正确运行和关闭它?


更新

我已经在 aiohttp 的 GitHub 存储库中创建了一个问题,描述了该问题并提出了可能的解决方案。我非常感谢您在这里或那里就所描述的问题提供意见。

0 投票
2 回答
1955 浏览

python - 将字节从 asyncio StreamReader 泵入文件描述符

我有一个 Python 函数(用 C++ 实现),它从文件描述符(包装在FILE*C++ 端)读取,我需要从asyncio.StreamReader. 具体来说,阅读器是 HTTP 响应的内容:aiohttp.ClientResponse.content

我想我可能会打开一个管道,将读取端传递给 C++ 函数并将写入端连接asyncio的事件循环。但是,如何通过适当的流控制和尽可能少的复制将数据从流读取器移动到管道?

缺少部分的代码骨架如下:

0 投票
1 回答
445 浏览

encoding - 在python3.5中使用proxybroker会抛出编码错误

我正在尝试使用proxybroker为某些国家/地区生成具有活动代理的文件。我总是在尝试获取代理时遇到同样的错误。该错误似乎是 proxbroker 使用的数据包中的编码/解码错误。但我怀疑可能有更好的方法来使用代理代理。

这是导致问题的代码:

和错误信息:

问题似乎出在 proxybroker 或者更确切地说是 aiohttp 包中。但是因为它应该是一个经过测试的包,所以问题可能是我的代码。

谁能看到我做错了什么,或者有人对代理经纪人的使用有什么建议吗?

0 投票
1 回答
208 浏览

python - 如何使用并发请求最大化带宽?

我想向 Web 服务器发送大约 6e6 个 post 请求。只有在没有重定向状态代码的情况下才会获取内容。当遍历提供重定向的一段数据时会出现问题;带宽使用非常低!(例如可用带宽的 10 %。)

我先使用multiprocessing.dummy模块,然后切换到使用,asyncio但即便如此,请求也没有利用整个带宽。

笔记

尽管正是问题所在,但我不懂 Go ,所以,我在这里询问了 Python 的解决方案。 不是我想问的问题,我通过一次处理数据子集来解决这个问题。

0 投票
1 回答
3537 浏览

python - 在 Gunicorn 中使用 aiohttp 和 aiopg 时如何设置日志记录?

aiohttp很棒,但是在本地和生产环境中使用Gunicorn.

我找到的用于设置日志记录的大多数示例和文档都是在本机服务器模式下运行的,您可以在其中使用make_handler()

按照文档中的建议,我使用GunicornWeb 服务器进行部署,所以我没有make_handler明确调用。

我没有看到 aiohttp.access 日志,也没有看到 aiohttp.server 日志,也没有看到 aiopg 日志,所有这些都应该默认设置

这是我在根级别得到的app.py

我的 config.yml 文件

我使用以下命令启动 gunicorn:

无论我进行什么查询,我都只会看到以下日志:

我想要的是:

  • aiopg 日志(运行的查询)
  • 访问日志
  • 服务器日志

谢谢

0 投票
2 回答
2944 浏览

python - aiohttp 的 response.json() 失败,状态为 500

服务器代理请求。

一切都适用于响应代码 200。当涉及到 500 响应代码时,无法从响应中读取 json。异常服务器断开连接错误:

帮助了解发生了什么。Python:3.4.4 aiohttp:0.22.5

0 投票
1 回答
1509 浏览

python-3.x - 在 aiohttp 应用程序中失去与 Redis(aioredis) 的连接

我正在构建一个text/event-stream基于视图,aiohttp并在aioredis实现中使用来自 Redis 的 pub-sub。它看起来像:

从服务器获取一些数据并发布到 chanell 的脚本

订阅频道并将其写入 Stream 响应的 aiohttp 视图

我得到了很多次类似的东西:

所以连接丢失,这也导致concurrent.futures.CancelledError和保持连接将丢失。经常丢失连接可以吗?我期待有持久的连接,如果我遗漏了什么,对不起。