我在向Reqwest传递数据时遇到问题。我正在使用serde_urlencoded为POST请求创建字符串。我收到下面的错误。我已经确认我使用curl请求的数据是正确的。它让我相信我的主体或标题是不正确的。
有人能帮助我理解这个请求出了什么问题吗?
错误:{\"error\":\"unsupported_grant_type\",\"error_description\":\"grant_type parameter is missing\"}
Vec<u8> body and HeaderMap == Hashmap<String, Vec<String>>
// application/x-www-form-urlencoded Mime type body
let body = serde_urlencoded::to_string([
("grant_type", "authorization_code"),
("code", "authcode"),
("redirect_uri", "redirect.com"),
("code_verifier", "workingVerifier" ),
("client_id", "SomeID"),
("client_secret", "SomeSecret"),
])?;
let body = serde_json::to_vec(&body)?;
let mut headers: HeaderMap = HeaderMap::new();
headers.insert(
"Authorization".to_string(),
vec![format!("Basic {}", generate_auth_string(conf).await?)],
);
headers.insert(
"Content-Type".to_string(),
vec!["application/x-www-form-urlencoded".to_string()],
);
Reqwest
let response = reqwest::Client::new()
.request(method, &req.url)
.headers(headers)
.body(body)
.send()
.await
1条答案
按热度按时间vlju58qv1#
Per @kmdreko我需要改变我的身体不使用serde_json。
let body = body.as_bytes().to_vec();