#http #request #https #client

mrq

简单,最小依赖的HTTP客户端

1个不稳定版本

0.1.0 2019年4月13日

#77 in #https

ISC 许可证

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