1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017 年 6 月 13 日 |
---|
#43 在 #offers
每月 21 次下载
7KB
81 行
hyper-timeout-connector
提供连接超时的 Hyper NetworkConnector
许可
许可协议为以下之一
- Apache License,版本 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则任何有意提交以包含在作品中的贡献,根据 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