httpcore,一个小巧灵活的 python 库

目录

01初识 httpcore

为什么选择 httpcore?

02安装与配置 

安装 httpcore

03基础操作

发送简单的 GET 请求

发送 POST 请求

异步请求

04高级操作

设置超时

自定义请求头

文件上传

处理响应内容

连接池管理

HTTP/2支持

05实战案例

抓取网页数据

API 调用与数据处理

构建RESTful API客户端

实时数据流处理

微服务架构中的通信

异步爬虫

06结语



01初识 httpcore


httpcore 是一个底层的 HTTP 客户端库,提供了高效的 HTTP 请求处理能力。它是 httpx 的核心部分,专注于提供低级别的 HTTP 功能,可以直接与 HTTP 协议进行交互。httpcore 设计简单,性能卓越,非常适合需要细粒度控制 HTTP 请求的场景。

为什么选择 httpcore?

  • 高效性能异步支持:httpcore 采用异步 I/O,性能优异,适合高并发场景。

  • 灵活控制HTTP/1.1和HTTP/2支持:提供低级别的 HTTP 功能,让你可以精细控制请求和响应,同时支持HTTP/1.1和HTTP/2协议。

  • 易于集成:可以轻松与其他 Python 库集成,扩展性强。

  • 连接池管理:自动管理连接池,复用连接以提高性能。

  • 低级请求/响应接口:提供底层的请求/响应接口,给予使用者更多的控制权。使用httpcore可以发送HTTP请求,并获取响应。它支持同步和异步两种操作方式。

听起来很不错吧?接下来,让我们安装并配置 httpcore,开始我们的精彩旅程!

Github 项目地址:

https://github.com/encode/httpcore

02安装与配置 


安装 httpcore

httpcore 的安装非常简单,只需要一行命令:

pip install httpcore

03基础操作


发送简单的 GET 请求

让我们从一个简单的 GET 请求开始:

import httpcore

# 创建一个 HTTP 客户端
client = httpcore.SyncClient()

# 发送 GET 请求
response = client.request("GET", "https://httpbin.org/get")

# 输出响应内容
print(response.status_code)
print(response.headers)
print(response.content)

再来一个简单的GET请求并获取响应例子:

import httpcore

# 创建一个同步HTTP连接
with httpcore.SyncConnectionPool() as http:
    # 定义请求方法、URL和头部
    method = b'GET'
    url = (b'http', b'example.com', None, b'/')
    headers = [(b'host', b'example.com')]

    # 发送请求并接收响应
    response = http.request(method, url, headers=headers)

    # 解包响应数据
    http_version, status_code, reason_phrase, headers, stream = response
    
    # 读取响应体
    body = b''.join([chunk for chunk in stream])
    
    print(f'Status code: {status_code}')
    print(f'Body: {body.decode("utf-8")}')

发送 POST 请求

接下来,我们发送一个 POST 请求,并附带一些数据:

import httpcore

# 创建一个 HTTP 客户端
client = httpcore.SyncClient()

# 发送 POST 请求
response = client.request(
    "POST",
    "https://httpbin.org/post",
    headers={"Content-Type": "application/json"},
    content=b'{"key": "value"}'
)

# 输出响应内容
print(response.status_code)
print(response.headers)
print(response.content)

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图灵学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值