我正在尝试使用Rust库reqwest来实现此curl
调用:
curl -u [USERNAME]:[PASSWORD] -H "Content-Type: application/json" -d @content.json [WEBSITE]
content.json
文件如其名,将JSON对象进行编码。
我的代码如下:
fn get_response() -> Result<String, Box<dyn Error>> {
let content = std::fs::read_to_string("content.json").unwrap();
let client = reqwest::blocking::Client::new();
client
.post([WEBSITE])
.basic_auth([USERNAME], Some([PASSWORD]))
.json(&content)
.send()?
.text()?
虽然使用
curl
命令可以运行,但是在运行Rust代码时,响应中会出现“请求有效载荷格式不正确”的错误消息。不幸的是,我无法对网站进行调试,因此无法解决问题。我的问题是:我是否做错了明显的事情?如果没有明显的问题,那有哪些选项(例如添加头文件)可以尝试? (当然,我已经尝试了一些东西,但没有任何效果)
.body()
并将内容类型标头设置为application/json
,但仍然无法正常工作。因此,提供一个可序列化的serde类型是我唯一有效的解决方案。 - THLO.json()
方法会自动插入Content-Type:application/json
标头。 - BallpointBen