所以我查找了 http crate docs 并使用
Request::builder()
发出请求。然而,尽管听起来很愚蠢,但我没有设法找出如何发送此请求。比如我需要做什么? :p
有一个示例代码,但它删除了重要的部分,
send()
函数:
use http::{Request, Response};
let mut request = Request::builder()
.uri("https://www.rust-lang.org/")
.header("User-Agent", "my-awesome-agent/1.0");
if needs_awesome_header() {
request = request.header("Awesome", "yes");
}
let response = send(request.body(()).unwrap());
fn send(req: Request<()>) -> Response<()> {
// ...
}
我已经按照入门指南设法通过hyper发送请求,但是http crate对我来说似乎更容易理解......至少只要我不必发送我的请求:p
目前我有:
use http::{Request, Response, StatusCode};
fn main() {
let request = Request::builder()
.method("GET")
.uri("https://api.spotify.com/v1/search?q=system+overload")
.header("artist", "smash stereo")
.body(())
.unwrap();
println!("{:?}", request);
}
输出:
Request { method: GET, uri: https://api.spotify.com/v1/search?q=system+overload, version: HTTP/1.1, headers: {"artist": "smash stereo"}, body: () }
你不能。 crate 文档 本身指出:
您将明显找不到在此箱中找到发送请求或启动服务器的实现。这个板条箱的目的是成为 HTTP 客户端和服务器的“标准库”,而不指定任何特定的实现。