首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用reqwest获得响应体?

如何利用reqwest获得响应体?
EN

Stack Overflow用户
提问于 2021-12-23 23:37:34
回答 1查看 5.1K关注 0票数 6

我试图向Binance API发送一个GET请求。但是我在我的终端中得到了这个输出,而不是数据:

代码语言:javascript
复制
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=="} }

我的代码如下所示:

代码语言:javascript
复制
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());
}

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-24 04:43:58

您正在打印的Response基本上只是最初的HTTP (例如状态和标头)。您还需要使用方法等待有效负载,这取决于您期望的是什么:

在本例中,您似乎得到了一个JSON有效负载,因此将.json()用于反序列化类型听起来是正确的方法,但是如果您的唯一目标是打印它,那么.text()可能是更简单的方法。

代码语言:javascript
复制
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);
}

相关信息:

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70468338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档