如何仅使用http crate发送http请求?

问题描述 投票:0回答:1

所以我查找了 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: () }
http rust request get send
1个回答
0
投票

你不能。 crate 文档 本身指出:

您将明显找不到在此箱中找到发送请求或启动服务器的实现。这个板条箱的目的是成为 HTTP 客户端和服务器的“标准库”,而不指定任何特定的实现。

© www.soinside.com 2019 - 2024. All rights reserved.