wasm: Omit request body if it's empty (#1012)
This should allow creating GET and HEAD requests from http::Request
This commit is contained in:
@@ -44,6 +44,13 @@ impl Body {
|
|||||||
inner: Inner::Multipart(f),
|
inner: Inner::Multipart(f),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(crate) fn is_empty(&self) -> bool {
|
||||||
|
match &self.inner {
|
||||||
|
Inner::Bytes(bytes) => bytes.is_empty(),
|
||||||
|
Inner::Multipart(form) => form.is_empty(),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<Bytes> for Body {
|
impl From<Bytes> for Body {
|
||||||
|
|||||||
@@ -158,7 +158,9 @@ async fn fetch(req: Request) -> crate::Result<Response> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Some(body) = req.body() {
|
if let Some(body) = req.body() {
|
||||||
init.body(Some(&body.to_js_value()?.as_ref().as_ref()));
|
if !body.is_empty() {
|
||||||
|
init.body(Some(&body.to_js_value()?.as_ref().as_ref()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let js_req = web_sys::Request::new_with_str_and_init(req.url().as_str(), &init)
|
let js_req = web_sys::Request::new_with_str_and_init(req.url().as_str(), &init)
|
||||||
|
|||||||
@@ -13,6 +13,12 @@ pub struct Form {
|
|||||||
inner: FormParts<Part>,
|
inner: FormParts<Part>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Form {
|
||||||
|
pub(crate) fn is_empty(&self) -> bool {
|
||||||
|
self.inner.fields.is_empty()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// A field in a multipart form.
|
/// A field in a multipart form.
|
||||||
pub struct Part {
|
pub struct Part {
|
||||||
meta: PartMetadata,
|
meta: PartMetadata,
|
||||||
|
|||||||
Reference in New Issue
Block a user