Skip to content

Commit 3214295

Browse files
committed
send_json sets content-length header
1 parent c7a9c9e commit 3214295

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/send_body.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ impl<'a> SendBody<'a> {
4343
value: &impl serde::ser::Serialize,
4444
) -> Result<SendBody<'static>, crate::Error> {
4545
let json = serde_json::to_vec_pretty(value)?;
46-
Ok(Self::from_owned_reader(io::Cursor::new(json)))
46+
Ok(BodyInner::ByteVec(io::Cursor::new(json)).into())
4747
}
4848

4949
pub(crate) fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
@@ -59,6 +59,8 @@ impl<'a> SendBody<'a> {
5959

6060
Ok(max)
6161
}
62+
#[cfg(feature = "json")]
63+
BodyInner::ByteVec(v) => v.read(buf),
6264
BodyInner::Reader(v) => v.read(buf),
6365
BodyInner::OwnedReader(v) => v.read(buf),
6466
BodyInner::Body(v) => v.read(buf),
@@ -182,6 +184,8 @@ impl<'a> AsSendBody for SendBody<'a> {
182184
inner: match &mut self.inner {
183185
BodyInner::None => BodyInner::None,
184186
BodyInner::ByteSlice(v) => BodyInner::ByteSlice(v),
187+
#[cfg(feature = "json")]
188+
BodyInner::ByteVec(v) => BodyInner::ByteSlice(v.get_ref()),
185189
BodyInner::Reader(v) => BodyInner::Reader(v),
186190
BodyInner::Body(v) => BodyInner::Reader(v),
187191
BodyInner::OwnedReader(v) => BodyInner::Reader(v),
@@ -194,6 +198,8 @@ impl<'a> AsSendBody for SendBody<'a> {
194198
pub(crate) enum BodyInner<'a> {
195199
None,
196200
ByteSlice(&'a [u8]),
201+
#[cfg(feature = "json")]
202+
ByteVec(io::Cursor<Vec<u8>>),
197203
Body(BodyReader<'a>),
198204
Reader(&'a mut dyn Read),
199205
OwnedReader(Box<dyn Read>),
@@ -204,6 +210,8 @@ impl<'a> BodyInner<'a> {
204210
match self {
205211
BodyInner::None => BodyMode::NoBody,
206212
BodyInner::ByteSlice(v) => BodyMode::LengthDelimited(v.len() as u64),
213+
#[cfg(feature = "json")]
214+
BodyInner::ByteVec(v) => BodyMode::LengthDelimited(v.get_ref().len() as u64),
207215
BodyInner::Body(v) => v.body_mode(),
208216
BodyInner::Reader(_) => BodyMode::Chunked,
209217
BodyInner::OwnedReader(_) => BodyMode::Chunked,

0 commit comments

Comments
 (0)