handle json serialization errors

fixes https://github.com/seanmonstar/reqwest/issues/112
This commit is contained in:
Corentin Henry
2017-05-31 16:41:43 -07:00
parent 7565179a1c
commit 2f1b3b352b
2 changed files with 5 additions and 5 deletions

View File

@@ -612,16 +612,16 @@ impl RequestBuilder {
/// ///
/// let client = reqwest::Client::new()?; /// let client = reqwest::Client::new()?;
/// let res = client.post("http://httpbin.org") /// let res = client.post("http://httpbin.org")
/// .json(&map) /// .json(&map)?
/// .send()?; /// .send()?;
/// # Ok(()) /// # Ok(())
/// # } /// # }
/// ``` /// ```
pub fn json<T: Serialize>(mut self, json: &T) -> RequestBuilder { pub fn json<T: Serialize>(mut self, json: &T) -> ::Result<RequestBuilder> {
let body = serde_json::to_vec(json).expect("serde to_vec cannot fail"); let body = serde_json::to_vec(json).map_err(::error::from)?;
self.headers.set(ContentType::json()); self.headers.set(ContentType::json());
self.body = Some(Ok(body.into())); self.body = Some(Ok(body.into()));
self Ok(self)
} }
/// Build a `Request`, which can be inspected, modified and executed with /// Build a `Request`, which can be inspected, modified and executed with

View File

@@ -101,7 +101,7 @@
//! //!
//! let client = reqwest::Client::new()?; //! let client = reqwest::Client::new()?;
//! let res = client.post("http://httpbin.org/post") //! let res = client.post("http://httpbin.org/post")
//! .json(&map) //! .json(&map)?
//! .send()?; //! .send()?;
//! # Ok(()) //! # Ok(())
//! # } //! # }