当前位置: 首页 > 工具软件 > Reqwest > 使用案例 >

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

万俟招
2023-12-01

一、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)
}

三、文章参考

 类似资料: