#hyper #timeout #offers #connection #connector #connect #network-connector

hyper-timeout-connector

提供连接超时的 Hyper NetworkConnector

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017 年 6 月 13 日

#43#offers

每月 21 次下载

MIT/Apache

7KB
81

hyper-timeout-connector

Build Status

文档

提供连接超时的 Hyper NetworkConnector

许可

许可协议为以下之一

任选其一。

贡献

除非你明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,应如上双许可,不附加任何额外的条款或条件。


lib.rs:

提供连接超时的 Hyper NetworkConnector

Hyper 的默认 HttpConnector 不提供新连接的配置超时,因此如果某些地址没有响应,connect 调用可能会长时间阻塞。 HttpTimeoutConnector 允许在连接过程中设置一个上限。

注意

超时分别应用于与主机关联的每个 IP 地址。

示例

连接到 HTTP 网站

extern crate hyper;
extern crate hyper_timeout_connector;

use hyper::Client;
use hyper_timeout_connector::HttpTimeoutConnector;
use std::time::Duration;

fn main() {
    let mut connector = HttpTimeoutConnector::new();
    connector.set_connect_timeout(Some(Duration::from_secs(30)));
    let client = Client::with_connector(connector);

    let response = client.get("http://google.com").send().unwrap();
}

连接到 HTTPS 网站

extern crate hyper;
extern crate hyper_timeout_connector;

use hyper::Client;
use hyper::net::HttpsConnector;
use hyper_timeout_connector::HttpTimeoutConnector;
use std::time::Duration;

fn main() {
    let mut connector = HttpTimeoutConnector::new();
    connector.set_connect_timeout(Some(Duration::from_secs(30)));

    let ssl_client = make_ssl_client();
    let connector = HttpsConnector::with_connector(ssl_client, connector);
    let client = Client::with_connector(connector);

    let response = client.get("https://google.com").send().unwrap();
}

依赖

~4.5MB
~111K SLoC