add the ability to deserialize JSON from a response body directly
This commit is contained in:
@@ -7,7 +7,7 @@ use hyper::status::StatusCode;
|
|||||||
use hyper::version::HttpVersion;
|
use hyper::version::HttpVersion;
|
||||||
use hyper::{Url};
|
use hyper::{Url};
|
||||||
|
|
||||||
use serde::Serialize;
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json;
|
use serde_json;
|
||||||
use serde_urlencoded;
|
use serde_urlencoded;
|
||||||
|
|
||||||
@@ -275,6 +275,11 @@ impl Response {
|
|||||||
pub fn version(&self) -> &HttpVersion {
|
pub fn version(&self) -> &HttpVersion {
|
||||||
&self.inner.version
|
&self.inner.version
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Try and deserialize the response body as JSON.
|
||||||
|
pub fn json<T: Deserialize>(&mut self) -> ::Result<T> {
|
||||||
|
serde_json::from_reader(self).map_err(::Error::from)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Read the body of the Response.
|
/// Read the body of the Response.
|
||||||
|
|||||||
@@ -68,5 +68,11 @@ impl From<::serde_urlencoded::ser::Error> for Error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<::serde_json::Error> for Error {
|
||||||
|
fn from(err: ::serde_json::Error) -> Error {
|
||||||
|
Error::Serialize(Box::new(err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// A `Result` alias where the `Err` case is `reqwest::Error`.
|
/// A `Result` alias where the `Err` case is `reqwest::Error`.
|
||||||
pub type Result<T> = ::std::result::Result<T, Error>;
|
pub type Result<T> = ::std::result::Result<T, Error>;
|
||||||
|
|||||||
Reference in New Issue
Block a user