Rust Reqwest 学习

  • Post author:
  • Post category:其他




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

和 其提供的

modules

做案例应用.



版权声明:本文为u010704579原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。