reqwest 0.11.4 学习
以应用为主, 在实践中体验 rust 的强大和快捷。
首先以
Web 开发
为主题,学习一个强大的 HTTP 客户端库
reqwest
。
Crate reqwest
介绍
单元包
reqwest
提供了一个便捷和高级别的 HTTP
Client
。
该包处理了大多数人期望的一个 HTTP Client 可以替他们做的很多事情 。
-
Async 和
blocking
客户端 - 纯文本 ( Plain Bodies ), JSON, urlencoded, multipart
-
可自定义的
redirect policy
-
HTTP
Proxies
- 使用系统本地 tls ( system-native TLS )
- Cookies
模块
reqwest
单元包包含以下模块 ( modules ):
- blocking
- cookie
- header
- multipart
- redirect
函数
在
reqwest
中(非子模块下)仅有一个公有函数
get
, 异步请求.
可选特征 Optional Features
若仅在 Cargo.toml 中做如下配置:
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
则说明在使用
reqwest
时仅仅启用了
json
相关的功能模块.
诸如
cookies
,
socks
等特征需要手动添加,否则使用不了
reqwest
的未启用特征的相关模块.
常用特征如下:
-
native-tls
启用 TLS 功能 -
rustls-tls
通过该 rustls 启用 TLS 功能 -
blocking
提供 blocking 客户端 API -
cookies
提供 cookie session 支持 -
gzip
对响应 BODY 启用 gzip 解压功能 -
deflate
对响应 BODY 启用 deflate 解压 -
json
对 JSON BODY 启用序列化和反序列化 -
multipart
提供 multipart forms 支持 -
stream
futures::Stream 支持 -
socks
提供 SOCKS5 代理支持 -
rust-dns
启用受信任 DNS 异步解析而非使用 getaddrinfo 的默认线程池
应用
reqwest
reqwest
接下来结合
reqwest
和 其提供的
modules
做案例应用.
版权声明:本文为u010704579原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。