- 简单使用 reqwest 发起 HTTP 请求
一、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"] }
- 1
- 2
- 3
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)}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39