Make Response::into_json deserialize into a serde DeserializeOwned
This removes the necessity to take the result of Response::into_json and having to convert it into a struct by using serde_json::from_value This adds no new dependencies since serde_json already depends on serde. Users of ureq will have to include `serde_derive` either by importing it directly or by using serde with the `derive` feature, unless they want to manually implement `Deserialize` on their structs.
This commit is contained in:
committed by
Martin Algesten
parent
8f2d094cef
commit
0b69c595b6
@@ -17,6 +17,14 @@ fn tls_connection_close() {
|
||||
#[cfg(feature = "json")]
|
||||
#[test]
|
||||
fn agent_set_cookie() {
|
||||
use serde::Deserialize;
|
||||
use std::collections::HashMap;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct HttpBin {
|
||||
headers: HashMap<String, String>,
|
||||
}
|
||||
|
||||
let agent = ureq::Agent::default().build();
|
||||
let cookie = ureq::Cookie::build("name", "value")
|
||||
.domain("httpbin.org")
|
||||
@@ -30,10 +38,9 @@ fn agent_set_cookie() {
|
||||
assert_eq!(resp.status(), 200);
|
||||
assert_eq!(
|
||||
"name=value",
|
||||
resp.into_json()
|
||||
.unwrap()
|
||||
.get("headers")
|
||||
resp.into_json::<HttpBin>()
|
||||
.unwrap()
|
||||
.headers
|
||||
.get("Cookie")
|
||||
.unwrap()
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user