Github每日精选(第68期):HTTP客户端哪家强-reqwest

reqwest

reqwest 又是一个http的客户端,基本上来说,每一种语言都会开发出http的客户端,这些库好不好用其实是另一回事,有才是关键。

一个简单而强大的 Rust HTTP 客户端。

github的地址在这里

在这里插入图片描述

reqwest 的安装和使用并不复杂,这里介绍下,安装和简单的使用情况。

安装

你可以通过将它加入 Cargo.toml 这种方式简单快速安装 reqwest,同时把 tokio 也添加并安装,因为 reqwest 底层使用了这个异步运行时。

[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
简单使用实例

比如我们想获取我们外网的ip地址,我们可以访问

https://httpbin.org/ip

这个网站,这个网站返回的是json的数据,我们需要对json 进行格式化,获取相应的字段。

代码如下:

use std::collections::HashMap;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::get("https://httpbin.org/ip")
        .await?
        .json::<HashMap<String, String>>()
        .await?;
    println!("{:#?}", resp);
    Ok(())
}

代码就比较简单,读起来也不会觉得太难,获取数据,并对其进行格式化。

{
origin: "32.194.43.24"
}

同样的这里有一个配置选项,blocking 我们可以把它开起来。

[dependencies]
reqwest = { version = "0.11", features = ["blocking", "json"] }

代码就变成这样子:

use std::collections::HashMap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::blocking::get("https://httpbin.org/ip")?
        .json::<HashMap<String, String>>()?;
    println!("{:#?}", resp);
    Ok(())
}

http 头的设置,同样的也可以在代码中进行:

let mut h = header::HeaderMap::new();
    h.insert("Accept", header::HeaderValue::from_static("application/json"));
    
    let client = reqwest::Client::builder()
        .default_headers(h)
        .build()?;

同样的,还有可以进行其他的一些设置,可以通过这个文档进行参看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

go2coding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值