我 正在 尝试 使用 以下 代码 建立 与 binance websocket 服务 器 的 连接 :
use tungstenite::{connect, Message};
use url::Url;
fn main() {
let (mut socket, response) =
connect(Url::parse("wss://stream.binance.com:9443/ws/BNBBTC@aggTrade").unwrap()).expect("Can't connect");
println!("Connected to the server");
println!("Response HTTP code: {}", response.status());
println!("Response contains the following headers:");
for (ref header, _value) in response.headers() {
println!("* {}", header);
}
}
中 的 每 一 个
其中 Cargo.toml
包含 :
[dependencies]
tungstenite = "0.17.3"
url = "2.3.1"
格式
我 收到 错误 :
thread 'main' panicked at 'Can't connect: Http(Response { status: 400, version: HTTP/1.1, headers: {"server": "awselb/2.0", "date": "Sat, 22 Oct 2022 20:23:40 GMT", "content-type": "text/html", "content-length": "220", "connection": "close"}, body: None })', src/main.rs:6:90
stack backtrace:
0: rust_begin_unwind
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panicking.rs:142:14
2: core::result::unwrap_failed
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/result.rs:1814:5
3: core::result::Result<T,E>::expect
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/result.rs:1064:23
4: untitled12::main
at ./src/main.rs:6:9
5: core::ops::function::FnOnce::call_once
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
格式
这个 错误 背后 的 原因 是 什么 ? 我 遗漏 了 什么 ? 这 看 起来 像 是 一 个 错误 的 请求 错误 , 但是 根据 binance websocket API , 我 的 请求 应该 是 格式 良好 的
1条答案
按热度按时间ujv3wf0j1#
默认情况下,tungstenite没有启用TLS,所以我必须在
Cargo.toml
中启用TLS: