我试图向Binance API发送一个GET请求。但是我在我的终端中得到了这个输出,而不是数据:
Response { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.binance.com")), port: None, path: "/api/v3/exchangeInfo", query: Some("symbol=BNBBTC"), fragment: None }, status: 200, headers: {"content-type": "application/json;charset=UTF-8", "content-length": "1515", "connection": "keep-alive", "date": "Thu, 23 Dec 2021 23:28:24 GMT", "server": "nginx", "vary": "Accept-Encoding", "x-mbx-uuid": "1244d760-2c41-46df-910f-b95c4a312bc2", "x-mbx-used-weight": "10", "x-mbx-used-weight-1m": "10", "strict-transport-security": "max-age=31536000; includeSubdomains", "x-frame-options": "SAMEORIGIN", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "content-security-policy": "default-src 'self'", "x-content-security-policy": "default-src 'self'", "x-webkit-csp": "default-src 'self'", "cache-control": "no-cache, no-store, must-revalidate", "pragma": "no-cache", "expires": "0", "access-control-allow-origin": "*", "access-control-allow-methods": "GET, HEAD, OPTIONS", "x-cache": "Miss from cloudfront", "via": "1.1 08b9c2fd11813ffdb8fa03129d0a465d.cloudfront.net (CloudFront)", "x-amz-cf-pop": "FRA56-C2", "x-amz-cf-id": "EBp6UQUM3B2Lz0iAoPM88INjL4C0ugIgxmaoTPzi0Q4WPxfG46p8Yw=="} }我的代码如下所示:
async fn main() {
let client = Client::new();
let res = client.get("https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC")
// .header(USER_AGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36")
// .header(CONTENT_TYPE, "application/json")
// .header(CACHE_CONTROL, "no-store")
// .header(PRAGMA, "no-cache")
.send().await;
println!("{:?}", res.unwrap());
}我做错了什么?
发布于 2021-12-24 04:43:58
您正在打印的Response基本上只是最初的HTTP (例如状态和标头)。您还需要使用方法等待有效负载,这取决于您期望的是什么:
bytes/bytes_stream/chunk使原始datatext/text_with_charset以stringjson的形式获取数据,以便将数据反序列化为结构化类型(更多信息请参见serde_json文档)在本例中,您似乎得到了一个JSON有效负载,因此将.json()用于反序列化类型听起来是正确的方法,但是如果您的唯一目标是打印它,那么.text()可能是更简单的方法。
async fn main() {
let client = Client::new();
let res = client
.get("https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC")
.send()
.await
.expect("failed to get response")
.text()
.await
.expect("failed to get payload");
println!("{}", res);
}相关信息:
https://stackoverflow.com/questions/70468338
复制相似问题