首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用brotli压缩python发出http请求

如何使用brotli压缩python发出http请求
EN

Stack Overflow用户
提问于 2019-07-30 05:25:48
回答 2查看 1.1K关注 0票数 1

我关注的是一个启用了brotli压缩的Apache服务器。当我从cli发送curl请求时,它工作得很好。但是,当我从python发送请求时,它返回未经过brotli压缩的纯文本。这意味着它没有使用brotli压缩。

有效的Curl命令:

代码语言:javascript
复制
curl  -H "Accept-Encoding: br"  http://testsite/index.html 

以下是python代码:

代码语言:javascript
复制
headers = {
                ' Accept-Encoding': 'br',
            }
           response = requests.get('http://testsite/index.html', headers=headers)

如何从python发出请求,以便向服务器发出使用brotli压缩的请求。

EN

回答 2

Stack Overflow用户

发布于 2019-09-20 18:35:45

这支持brotli请求https://github.com/encode/httpx

来自单元测试的示例:

代码语言:javascript
复制
import brotli
import httpx

body = b"test 123"
compressed_body = brotli.compress(body)

headers = [(b"Content-Encoding", b"br")]
response = httpx.Response(200, headers=headers, content=compressed_body)
票数 0
EN

Stack Overflow用户

发布于 2020-06-12 07:03:34

您的示例没有显示您是如何读取响应的。但是您正在使用依赖于urllib3requests,请求响应内容首先根据content-encoding header进行解码。

您可以在urllib3 documentation中看到该参数。

作为brotli decoding is supported by urllib3,接收解码后的内容实际上是有意义的(考虑到安装了brotli模块)。

是您想要访问brotli编码的内容的实际请求,如果是这样的话,您将必须检查请求文档,看看是否有方法访问原始的未解码内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57261619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档