rust代码发送post 请求然后自定义header 怎么写 请求发送json
以下是一个简单的示例代码,用于发送POST请求并自定义header,请求发送JSON数据:
use reqwest::header::{HeaderMap, HeaderValue, CONTENT_TYPE};
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 构造请求的URL和JSON数据
let url = "https://example.com/api";
let json_data = json!({
"username": "foo",
"password": "bar"
});
// 构造请求头
let mut headers = HeaderMap::new();
headers.insert(
CONTENT_TYPE,
HeaderValue::from_static("application/json"),
);
headers.insert(
"Authorization",
HeaderValue::from_static("Bearer YOUR_ACCESS_TOKEN"),
);
// 发送POST请求
let client = reqwest::Client::new();
let resp = client
.post(url)
.headers(headers)
.json(&json_data)
.send()
.await?;
// 处理响应
let status = resp.status();
let body = resp.text().await?;
println!("Response status: {}", status);
println!("Response body: {}", body);
Ok(())
}
在这个例子中,我们使用了reqwest库来发送HTTP请求,并使用serde_json库来构造JSON数据。首先,我们构造了请求的URL和JSON数据。然后,我们创建了一个HeaderMap对象来存储请求头,并将Content-Type设置为application/json,并添加了一个自定义的Authorization头,用于身份验证。最后,我们使用client.post(url)方法创建一个POST请求对象,并使用.headers(headers)方法将请求头添加到请求中。我们还使用.json(&json_data)方法将JSON数据添加到请求正文中。最后,我们使用.send().await?方法来发送请求并等待响应。我们可以使用resp.status()方法获取响应状态码,使用resp.text().await?方法获取响应正文并打印它。
原文地址: https://www.cveoy.top/t/topic/fFF 著作权归作者所有。请勿转载和采集!