Skip to content

Commit a5f337b

Browse files
committed
Request: use http-types for querystring handling
It seems like this was overlooked from b6113de
1 parent ed75ad9 commit a5f337b

File tree

3 files changed

+7
-25
lines changed

3 files changed

+7
-25
lines changed

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ log = { version = "0.4.7", features = ["kv_unstable"] }
3434
mime_guess = "2.0.3"
3535
serde = "1.0.97"
3636
serde_json = "1.0.40"
37-
serde_urlencoded = "0.6.1"
3837
url = "2.0.0"
3938
http-client = { version = "6.0.0", default-features = false }
4039
http-types = "2.0.0"

src/request.rs

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::http::{
22
self,
33
headers::{self, HeaderName, HeaderValues, ToHeaderValues},
4-
Body, Error, Method, Mime,
4+
Body, Method, Mime,
55
};
66
use crate::RequestBuilder;
77

@@ -89,14 +89,8 @@ impl Request {
8989
/// assert_eq!(page, 2);
9090
/// # Ok(()) }
9191
/// ```
92-
pub fn query<T: serde::de::DeserializeOwned>(&self) -> Result<T, Error> {
93-
use std::io::{Error, ErrorKind};
94-
let query = self
95-
.req
96-
.url()
97-
.query()
98-
.ok_or_else(|| Error::from(ErrorKind::InvalidData))?;
99-
Ok(serde_urlencoded::from_str(query)?)
92+
pub fn query<T: serde::de::DeserializeOwned>(&self) -> crate::Result<T> {
93+
self.req.query()
10094
}
10195

10296
/// Set the URL querystring.
@@ -119,16 +113,8 @@ impl Request {
119113
/// assert_eq!(req.as_ref().url().as_str(), "https://httpbin.org/get?page=2");
120114
/// # Ok(()) }
121115
/// ```
122-
pub fn set_query(
123-
&mut self,
124-
query: &(impl Serialize + ?Sized),
125-
) -> Result<(), serde_urlencoded::ser::Error> {
126-
let query = serde_urlencoded::to_string(query)?;
127-
self.req.url_mut().set_query(Some(&query));
128-
129-
*self.req.url_mut() = self.req.url().clone();
130-
131-
Ok(())
116+
pub fn set_query(&mut self, query: &impl Serialize) -> crate::Result<()> {
117+
self.req.set_query(query)
132118
}
133119

134120
/// Get an HTTP header.

src/request_builder.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::http::{
22
headers::{HeaderName, ToHeaderValues},
33
Body, Method, Mime,
44
};
5-
use crate::{Client, Request, Response, Result};
5+
use crate::{Client, Error, Request, Response, Result};
66

77
use futures_util::future::BoxFuture;
88
use serde::Serialize;
@@ -161,10 +161,7 @@ impl RequestBuilder {
161161
/// assert_eq!(req.as_ref().url().as_str(), "https://httpbin.org/get?page=2");
162162
/// # Ok(()) }
163163
/// ```
164-
pub fn query(
165-
mut self,
166-
query: &(impl Serialize + ?Sized),
167-
) -> std::result::Result<Self, serde_urlencoded::ser::Error> {
164+
pub fn query(mut self, query: &impl Serialize) -> std::result::Result<Self, Error> {
168165
self.req.as_mut().unwrap().set_query(query)?;
169166

170167
Ok(self)

0 commit comments

Comments
 (0)