借一个 Actix-web::Client 官方的例子,可以这样发送一个 HTTP 请求:
use actix_web::client::Client;
#[actix_rt::main]
async fn main() {
let mut client = Client::default();
// Create request builder and send request
let response = client.get("http://sunnysab.cn")
.send().await.unwrap();
println!("{:?}", response);
}
但是无论如何程序运行都会返回一个错误:
Err(Connect(Timeout))
用 Wireshark 抓包也没有抓到程序发送了相关的包。
后来在官方 Github 项目上找到了相关的 issue:
https://github.com/actix/actix-web/issues/1047
推测可能是 actix-web 依赖的 dns 库,用未连接的网卡进行了DNS请求(UDP绑定网卡时随便选了一个)。把多余网卡禁用就好了。