rust 发送post 请求 响应json

//这个函数的返回值的String 是响应体 字符串  
async fn send_post() -> Result<String, reqwest::Error> {
    let client = reqwest::Client::new();
    //post 请求头
    let mut header = HeaderMap::new();
    header.insert("User-Agent",
                  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) \
                  Chrome/110.0.0.0 Safari/537.36".parse().expect("unsolve the userAgent header value."),
    );
    header.insert("referer", "https//www.aaa.com".parse().expect("unsolve the referer value."));
    header.insert("sec-ch-ua", "sec-ch-ua".parse().expect("ms"));

    // post 请求体
    let mut data = HashMap::new();
    //用户输入
    //get_user_input().await;

    data.insert("prompt", "aaa");

    Ok(client.post("https://这里是连接地址")
        .headers(header)
        .json(&data)//把data 转json 格式 {"prompt","aaa"}
        .send()
        .await?// 这里是response 对象
        .text() 
        .await?
    )
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让Rust的actix-web框架返回指定的JSON正文作为错误响应,你可以使用`HttpResponse::build()`方法来构建自定义的HTTP响应,并使用`serde_json`库将数据转换为JSON格式。以下是一个示例: 首先,你需要在Cargo.toml文件中添加`serde`和`serde_json`依赖项: ```toml [dependencies] serde = "1.0" serde_json = "1.0" ``` 然后,你可以在错误类型中实现`ResponseError` trait,并使用`error_response()`方法来返回自定义的HTTP响应。在该方法中,你可以使用`serde_json`库将数据转换为JSON格式,并将其作为响应的正文。以下是一个示例: ```rust use actix_web::{HttpResponse, ResponseError}; use serde::Serialize; use serde_json::json; use std::fmt; #[derive(Debug)] struct MyError { message: String, } impl fmt::Display for MyError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{}", self.message) } } impl ResponseError for MyError { fn error_response(&self) -> HttpResponse { let response_body = json!({ "error": self.message, }); HttpResponse::BadRequest() .content_type("application/json") .body(response_body.to_string()) } } ``` 在这个示例中,我们定义了一个自定义的错误类型`MyError`,并实现了`fmt::Display` trait以便在错误消息中使用。 然后,我们为`MyError`实现了`ResponseError` trait,并在`error_response()`方法中构建自定义的HTTP响应。我们使用`serde_json`库将错误消息转换为JSON格式,并使用`HttpResponse::BadRequest()`指定状态码为400。最后,我们使用`.content_type("application/json")`设置响应的Content-Type头,并使用`.body(response_body.to_string())`将JSON正文作为响应的主体。 当你在处理请求时遇到`MyError`类型的错误,actix-web将自动调用`error_response()`方法,并返回自定义的错误响应。 希望这可以帮助你实现让错误响应返回指定的JSON正文!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值