actix_web 如何从 awc::client::ClientResponse 获取响应正文

问题描述

我正在尝试从 awc::client::ClientResponse 中获取响应。但总是得到空字符串。如果我对 curl 使用相同的请求,我会得到响应。 这是我正在尝试的这是一个 actix_web 服务,它接受 json 请求并调用其他服务以获取响应。然后将其发送回客户端。


async fn get_info(info: actix_web::web::Json<Info>) -> impl Responder {
    let mut builder = SslConnector::builder(SslMethod::tls()).unwrap();
    builder.set_verify(SslVerifyMode::NONE);
    let myconnector = builder.build();

    let client = Client::builder()
        .connector(Connector::new().ssl(myconnector).finish())
        .finish();
    let fund_card_req:FundingCardRequest = FundingCardRequest::new(vec![Accounts::new("45135612".to_string(),666666)],String::from("INCOMING"),String::from("ACH"),1095434517);
        println!("{:?}",serde_json::to_string(&fund_card_req));
        let mut response = client.post("https://mn.sit.jq.com/fundingcard-activity")
        .timeout(core::time::Duration::from_secs(10))
        .header("Content-Type","application/json")
        .send_json(&fund_card_req).await.unwrap();
        match response.status(){
            StatusCode::OK => {
                println!("status: success");
                let k = response.body().limit(20_000_000).await.unwrap();
                println!("{:?}",str::from_utf8(&k)); 
            },_ => println!("status: Failed"),}
    HttpResponse::Ok().body("hello world")
}

我已经浏览了大部分关于 rust 的客户端示例 以下是我的设置。

actix-web = {version ="3.3.2",features = ["openssl"]}
actix-service = "1.0.1"
openssl = "0.10.29"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)