fix(core): wrong Content-Type when using reqwest's multipart, ref #4312

This commit is contained in:
Lucas Nogueira
2022-06-10 16:10:46 -03:00
parent 8ce5b76264
commit f6205afc0d
2 changed files with 10 additions and 3 deletions

View File

@@ -0,0 +1,5 @@
---
"tauri": patch
---
Fixes the `Content-Type` header value when sending multipart requests using the `reqwest-client` feature.

View File

@@ -238,7 +238,7 @@ impl Client {
/// Executes an HTTP request
///
/// # Examples
pub async fn send(&self, request: HttpRequestBuilder) -> crate::api::Result<Response> {
pub async fn send(&self, mut request: HttpRequestBuilder) -> crate::api::Result<Response> {
let method = Method::from_bytes(request.method.to_uppercase().as_bytes())?;
let mut request_builder = self.0.request(method, request.url.as_str());
@@ -260,7 +260,7 @@ impl Client {
#[allow(unused_variables)]
fn send_form(
request_builder: reqwest::RequestBuilder,
headers: &Option<HeaderMap>,
headers: &mut Option<HeaderMap>,
form_body: FormBody,
) -> crate::api::Result<reqwest::RequestBuilder> {
#[cfg(feature = "http-multipart")]
@@ -271,6 +271,8 @@ impl Client {
.map(|v| v.as_bytes()),
Some(b"multipart/form-data")
) {
// the Content-Type header will be set by reqwest in the `.multipart` call
headers.as_mut().map(|h| h.0.remove("content-type"));
let mut multipart = reqwest::multipart::Form::new();
for (name, part) in form_body.0 {
@@ -311,7 +313,7 @@ impl Client {
}
Ok(request_builder.form(&form))
}
send_form(request_builder, &request.headers, form_body)?
send_form(request_builder, &mut request.headers, form_body)?
}
};
}