问题标签 [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 投票
1 回答
3640 浏览

python - python aiohttp.web 中间件是如何工作的

根据文档

传入中间件工厂的处理程序是下一个中间件工厂返回的处理程序。最后一个中间件工厂总是接收路由器本身选择的请求处理程序(通过 UrlDispatcher.resolve())。

我认为 UrlDispatcher.resolve() 将返回我分配的注册处理程序,所以我编写了这段代码。根据我的理解,当访问页面 127.0.0.1:9000 时,索引处理程序将用作 m1 的处理程序

当我运行代码并在 127.0.0.1:9000 访问服务器时,我得到了

在我看来,NoneType 作为处理程序传递到 m1 中间件

0 投票
2 回答
2165 浏览

python - aiohttp 和 websockets 之间有什么区别/兼容性?

aiohttp的 websocket 支持(即WebSocketResponse)和websockets (都提供异步支持)有什么区别?它们可以混合吗?

0 投票
1 回答
643 浏览

php - 使用 post 和 JWS 发送 JSON 数据

我正在使用 aiohttp(和 asyncio)向 PHP 应用程序发出 POST 请求。当我在 python 上为 json 设置标头时,PHP 应用程序没有收到任何 $_POST 数据(PHP 已Content-Type: application/json设置标头)。

php 端代码只返回json_encode($_POST).

运行这个我得到:[]

删除标题参数时,json.dump(d)我得到:{"some:"data"}

0 投票
1 回答
32 浏览

python - 有没有办法找到多个计时器中的哪一个引发异常?

由于两个计时器具有相同的超时时间,因此它们都可以 raise TimeoutError。我想知道是谁做的。可能吗?

0 投票
2 回答
35334 浏览

python - Python 3.4 中的“异步”

aiohttp 的入门文档提供了以下客户端示例:

他们为 Python 3.4 用户提供了以下注释:

如果您使用的是 Python 3.4,请将 await 替换为 yield from 并将 async def 替换为 @coroutine 装饰器。

如果我遵循这些说明,我会得到:

但是,这不会运行,因为async withPython 3.4 不支持:

如何翻译该async with语句以使用 Python 3.4?

0 投票
1 回答
1907 浏览

python-3.5 - 如何为 aiohttp 创建委托/嵌套异步上下文管理器?

我想为具有动态等待的爬虫创建自定义请求管理器。
我的爬虫需要向禁止来自同一 IP 地址的并行请求的站点发出请求。如果发生这种阻塞,请求返回 HTTP 错误代码 403、503、429 等
。如果出现错误,我想等待一段时间并重复请求。但是为了简单起见,他们只调用 get 并接收正确的页面。
我想将aiohttp和新的async 与Python 3.5的语法一起使用,因此如果他们像这样使用aiohttp.ClientSession,我的解析器类可以以同样的方式对我的请求者类使用async with

如果请求者aiohttp.ClientSession,则响应aiohtpp.ClientResponse,它具有__aenter____aexit__方法,因此可以按预期异步工作。
但是如果我把我的请求者类放在中间,它就不再工作了。

它看起来像这样。

据我了解self.session.get是协程函数,所以我会等待它。结果是aiohttp.ClientResponse具有__aenter____aexit__。但是如果返回它parserasync with block 代码返回奇怪的错误。

你能说一下我需要用我的请求者类替换什么,就像用aiohttp.ClientSession 一样吗?

0 投票
0 回答
1808 浏览

python-3.x - 使用 asyncio 和 aiohttp 从 url 加载 zip 文件

如何使用 GET 请求加载 Zip 文件?

我在我的 Python 应用程序中使用 asyncio 和 aiohttp。那是我的代码:

然后我得到 asyncio.TimeoutError

0 投票
1 回答
5789 浏览

python - Aiohttp,Asyncio:RuntimeError:事件循环已关闭

我有两个脚本,scraper.py 和 db_control.py。在 scraper.py 我有这样的东西:

在 db_control.py 中:

理论上,刮板应该在未知时间启动,直到获得足够的数据。但是当new不是立即> 15发生时,会发生此错误:

但是如果我只运行一次 scrape(),脚本就可以正常工作。所以我想重新创建有一些问题loop = asyncio.get_event_loop(),我已经尝试过,但没有任何改变。我该如何解决这个问题?当然,这些只是我的代码片段,如果您认为问题可能出在其他地方,请点击此处获取完整代码。

0 投票
2 回答
2340 浏览

python-3.5 - aiohttp+aiomysql (python 3.5) 的单例连接池

我在玩 aiohttp+aiomysql。我想在请求调用之间共享相同的连接池实例。

所以我创建了一个全局变量并在 corouting 调用中对其进行了一次预初始化。

我的代码:

这样做是方便的方式,还是更好的方式?

0 投票
1 回答
10723 浏览

progress-bar - 带 tqdm 的 asyncio aiohttp 进度条

我正在尝试集成一个进度条来监视在 Python 3.5 中tqdm生成的 POST 请求。aiohttp我有一个工作进度条,但似乎无法使用as_completed(). 感激地收到了指点。

我发现的示例建议使用以下模式,该模式与 Python 3.5async def定义不兼容:

没有进度条的工作(尽管已编辑)异步代码:

这是我修改失败的尝试loop()