1个不稳定版本
0.1.0 | 2019年4月13日 |
---|
#77 in #https
21KB
375 行
mrq
简单,基于minreq
的最小依赖HTTP客户端
许可证
本软件包遵循ISC许可证。
lib.rs
:
mrq
简单,最小依赖的HTTP客户端。该库具有非常简单的API,所以阅读几个示例后,你可能会知道你需要知道的一切。
HTTPS
由于该软件包在依赖关系方面要求最小化,HTTPS是一个独立的功能,因为它需要(非常好的)rustls
软件包。要发送HTTPS请求,您需要将Cargo.toml的[dependencies]
部分更改为类似以下内容
mrq = { version = "0.1.0", features = ["https"] }
示例
获取
// This is a simple example of sending a GET request and
// printing out the response.
if let Ok(response) = mrq::get("http://httpbin.org/ip").send() {
println!("{}", response.body);
}
主体
// To include a body, add .with_body("") before .send().
if let Ok(response) = mrq::post("http://httpbin.org/post")
.with_body("Pong!")
.send()
{
println!("{}", response.body);
}
头部
// To add a header, add .with_header("Key", "Value") before .send().
if let Ok(response) = mrq::get("http://httpbin.org/headers")
.with_header("Accept", "text/plain")
.with_header("Something", "Interesting")
.send()
{
println!("{}", response.body);
}
超时
// To avoid timing out, or limit the request's response time even more,
// use .with_timeout(n) before .send(). The given value is in seconds.
// NOTE: There is no timeout by default.
if let Ok(response) = mrq::post("http://httpbin.org/delay/6")
.with_timeout(10)
.send()
{
println!("{}", response.body);
}
超时
默认情况下,请求没有超时。您可以通过两种方式更改此设置
- 使用此函数(
create_request
)并对其调用with_timeout
来设置请求的超时,如下所示mrq::get("/").with_timeout(8).send();
- 将环境变量
mrq_TIMEOUT
设置为超时所需的秒数。例如,如果您有一个名为foo
的程序使用mrq,并且您希望该程序发出的所有请求在8秒后超时,您可以这样启动程序
或者在某处代码中的请求之前添加以下内容。$ mrq_TIMEOUT=8 ./foo
use std::env; env::set_var("mrq_TIMEOUT", "8");
依赖项
~0–1.7MB
~40K SLoC