Rust - 简单使用 reqwest 发起 HTTP 请求

一、reqwest 是什么

reqwest 是一个简单而强大的 RUST HTTP 客户端,用于浏览器异步 HTTP 请求。支持 xmlHttpRequest, JSONP, CORS, 和 CommonJS 约束。

二、使用 reqwest 发起请求

1. 在 Cargo.tom 添加依赖

[dependencies]
reqwest = { version = "0.11.11", features = ["json", "cookies"] }
tokio = { version = "1", features = ["full"] }

2. main.rs

use std::collections::HashMap;
use std::error::Error;
use std::sync::Arc;
use reqwest::{cookie::Jar, Url};
use tokio;

#[tokio::main]
async fn main() {
   let data = request_data().await.unwrap();
   println!("{:?}", data);
}

async fn request_data() -> Result<String, Box<dyn Error>> {
    let mut map = HashMap::new();
    map.insert("q", "设置");
    map.insert("page", "1");
    map.insert("pageSize", "10");
    map.insert("ctoken", "69_e6Yu_Zr_G8bLWy1KQNxaK");
    println!("map: {:?}", map);
    // 设置cookie
    let cookie = "ctoken=69_e6Yu_Zr_G8bLWy1KQNxaK";
    let url = "https://www.iconfont.cn".parse::<Url>().unwrap();
    let jar = Jar::default();
    jar.add_cookie_str(cookie, &url);

    let client = reqwest::Client::builder()
        .cookie_provider(Arc::new(jar))
        .build()
        .unwrap();

    let res = client
        .post("https://www.iconfont.cn/api/icon/search.json")
        .json(&map)
        .send()
        .await?
        .text()
        .await?;
    Ok(res)
}

三、文章参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王文聪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值