大家好,我希望你们都很好,每天都在学习。那么我们今天要讨论的是什么?嵌入式?单片机?不!都不是。今天我们要讨论的是RUST编程中的HTTP请求。
在上一篇博客中,我们谈到了一个 宝贵的软件包LSM303DLHC,使用它我们可以访问F3板上的两个传感器。今天,我们将学习一些不同的东西,但也是相关的。
HTTP请求在社会中的应用
什么是HTTP请求?


一个HTTP请求是由一个客户向位于服务器上的一个命名的主机发出的。该请求的目的是访问服务器上的资源。现在要访问这个服务器--客户使用一个URL(统一资源定位器)。
一个正确组成的HTTP请求包含以下元素。


- 一个请求行。
- 一系列的HTTP头,或头域。
- 一个信息体,如果需要的话。
RUST中的reqwest板块!
reqwest crate提供了一个方便的、更高级别的HTTP客户端。它可以处理许多大多数人只是期望HTTP客户端为他们做的事情。
只做少量请求的应用程序可以使用reqwest::blocking ,而 reqwest::Client是异步的。这有助于在Rust中进行HTTP请求。
在Cargo.toml和The Body中包含的依赖项!
对于客户端,作为一个异步请求,我们使用 Tokio.
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
使用tokio并以异步方式工作的主体。
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(())
}
对于阻塞式客户端,我们使用.NET技术。
[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(())
}
发出一些请求
提出一个GET请求
对于一个单一的请求,我们可以使用 "get",这是一个快捷的方法。
let body = reqwest::get("https://www.rust-lang.org")
.await
发出POST请求
的主体。
let client = reqwest::Client::new();
let res = client.post("http://httpbin.org/post")
.body("the exact body that is sent")
.send()
.await
不仅如此,我们还可以用许多不同的格式在服务器上发布我们的数据。让我们来看看其中的几种。
数据被序列化成一个表单数据。
// This will POST a body of `hi=ROHAN&bye=AKASH`
let params = [("hi", "ROHAN"), ("bye", "AKASH")];
let client = reqwest::Client::new();
let res = client.post("http://httpbin.org/post")
.form(¶ms)
.send()
.await
JSON表格
// This will POST a body of `{"database":"user","body":"json"}`
let mut map = HashMap::new();
map.insert("database", "user");
map.insert("body", "json");
let client = reqwest::Client::new();
let res = client.post("http://httpbin.org/post")
.json(&map)
.send()
.await
测试你的 "get "和 "post "请求
这里有一些在线服务器,你可以在上面测试你的get、post和更多的请求。
返回得到的数据。
返回你的post数据。
返回你的HTTP状态代码。
https://httpbin.org/status/:code
以下是我的链接 仓库的链接,我在其中使用客户端异步完成了发布和获取请求。如果你面临任何问题,你可以用它来获得一个想法。
这就是今天博客的全部内容。我希望你喜欢阅读。谢谢!!!。