问题标签 [httpx]

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 回答
417 浏览

python - aiohttp - 错误:400,消息='标头中的无效字符'

我已经开始使用 AioHttp 在请求中使用异步代码。但是,我发现我遇到了许多不返回响应的页面。相反,我得到: Error: 400, message='invalid character in header'

我在网上寻找了一种过去的方法(可能使用不同的解码机制?),并在 Github 上遇到了这个(以及一些类似的)讨论:https ://github.com/aio-libs/aiohttp/issues/5269

基本上看起来好像没有真正的方法可以解决这个问题,除了可能使用 AIOHTTP_NO_EXTENSIONS=1,如下所示:https ://github.com/aio-libs/aiohttp/issues/5355 ,但我不确定我可能需要的这些“扩展”中还有什么。

这是一些说明问题的示例代码: https ://github.com/aio-libs/aiohttp/issues/5269#issuecomment-803565516

目前我看到的唯一方法是转向 HTTPX,这很好,但仍然不是 v1.0.0(在生产环境中使用感觉很奇怪)。

我正在寻找解决这个问题的任何方法,或者可能是 aiohttp 的一个很好的替代方案。谢谢!

0 投票
1 回答
1858 浏览

file-upload - 上传大文件时,fastapi 抛出 400 错误请求

我在 VirtualBox 上配置并配置了一个 Fedora 34 vm,具有 2048 MB RAM,以在localhost:7070. 完整的应用程序源代码和依赖代码和说明在这里。下面是我可以制作的最小的可重现示例。

main.py

start.sh服务器应用程序

client.py

创建一个 1500 MB 的文件

当上传一个 1500 MB 的文件时,当前的实现upload似乎是将整个文件读入内存,然后服务器响应{status: 400, reason: 'Bad Request', details: 'There was an error parsing the body.'},文件并没有写入磁盘。上传 825 MB 文件时,服务器响应 200,然后将文件写入磁盘。我不明白为什么在解析较大的文件时会出错。

这是怎么回事?

如何上传大于机器可用内存的文件?

我必须流式传输身体吗?

0 投票
3 回答
1218 浏览

python - python异步和httpx

我对异步编程非常陌生,我正在玩 httpx。我有以下代码,我确定我做错了什么 - 只是不知道它是什么。有两种方法,一种是同步的,一种是异步的。他们都来自谷歌金融。在我的系统上,我看到花费的时间如下:

异步:5.015218734741211
同步:5.173618316650391

这是代码:

我曾希望异步方法方法只需要同步方法所需时间的一小部分。我究竟做错了什么?

0 投票
0 回答
53 浏览

gunicorn - 涉及外部 API 请求时的 Gunicorn 性能问题

我们有一个使用 FastAPI 编写的 API 服务。在我们的小型 Docker Swarm 集群中,当针对返回预定义 JSON 响应的端点进行测试时,我们每秒达到 40K+ 请求。但是当我们请求一个端点对外部服务进行 HTTP 调用,然后在请求完成后返回数据时,性能会受到严重影响。当我们在不进行外部 HTTP 调用的路由上达到每秒 40K+ 的请求时,我们在发出外部请求的路由上几乎无法达到每秒 100 个请求。

并且CPU使用率急剧增加。线程会被锁定吗?当我们只使用 Uvicorn 时会出现同样的性能问题,或者当使用 Uvicorn 工人类使用 Gunicorn 时它仍然存在。

我们正在寻求帮助,以提高在返回响应之前进行外部 HTTP 调用的端点的性能。

0 投票
2 回答
186 浏览

http2 - 在 python 中对 HTTP1.1/HTTP2 进行基准测试

我用 python 对 http1.1/http2 做了一些基准测试,代码很简单,就像多次重复谷歌搜索请求一样。结果很有趣:http2 版本的速度要慢得多。(我尝试了两个 pycurl/httpx 库)有人可以解释为什么会发生这种情况吗?

更新:这是httpx版本代码:(第一pip install httpx[http2]

0 投票
1 回答
412 浏览

python - 异步的内存泄漏

我有这种方法可以og:image异步获取 html 页面的元标记,我正在使用 httpx 流式传输响应,以便在遇到og:image标记时可以停止阅读。我的问题是我遇到了严重的内存泄漏,导致整个应用程序在 40 多个请求后崩溃。这是代码示例:

我的问题是我在这里通过闯入做了一些可怕的事情async for,这是可以预料的(如果是的话,我很想知道我可以如何做不同的事情),或者这是出乎意料的行为?谢谢。

0 投票
1 回答
538 浏览

python - 为什么我收到 python-httpx 未关闭对象警告?

我做错了什么?有解决办法吗?我是异步编程的新手;这很令人困惑。

结果错误:

上下文管理器不应该自动关闭连接吗?这是图书馆中的错误还是我遗漏了什么?这个 response.json() 是原因还是其他地方的问题,但此时恰好“打印”?

https://github.com/encode/httpx/issues/1332

0 投票
0 回答
35 浏览

python - 如何使用 httpx AsynCclient 在 URL 中执行带有下划线“_”的请求

我想使用 httpx 通过 AsyncClient 执行请求,但 URL 包含“_”下划线并且无法解析。

代码给我回溯:不支持的 URL 协议“示例”

是否可以以某种方式向看起来像这样的 url 发送请求?

0 投票
1 回答
20 浏览

python - RuntimeWarning:从未等待协程“current_time”返回浮点(anyio.current_time())

蟒蛇 3.8.8 httpx 0.18.2

这是我下面的代码。我正在使用 httpx&asyncio 进行测试。代码非常简单,与示例相同,但发生了错误。

当我运行它时,会出现问题。

当我之前用python 3.7运行它时,这是正常的。但现在,我应付不来。你能帮我吗?谢谢

0 投票
0 回答
72 浏览

python - 几次迭代后 HTTPX 套接字连接断开

我正在使用 httpx 和 trio 进行抓取,在链接上进行几次迭代后,它返回一个错误 - ReadError: socket connection broken: [WinError 10053] 已建立的连接被主机中的软件中止

这是我的脚本:

要迭代的总链接是 9731,它甚至在达到 2000 个链接之前就中断了,我不确定我的脚本的哪一部分需要修复才能遇到这个问题。

完整的错误信息如下: