avoid parsing when setting headers
This commit is contained in:
17
src/agent.rs
17
src/agent.rs
@@ -117,9 +117,10 @@ impl Agent {
|
|||||||
K: Into<String>,
|
K: Into<String>,
|
||||||
V: Into<String>,
|
V: Into<String>,
|
||||||
{
|
{
|
||||||
let s = format!("{}: {}", header.into(), value.into());
|
add_header(
|
||||||
let header = s.parse::<Header>().expect("Failed to parse header");
|
&mut self.headers,
|
||||||
add_header(&mut self.headers, header);
|
Header::new(&header.into(), &value.into()).expect("Failed to parse header"),
|
||||||
|
);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,9 +154,7 @@ impl Agent {
|
|||||||
I: IntoIterator<Item = (K, V)>,
|
I: IntoIterator<Item = (K, V)>,
|
||||||
{
|
{
|
||||||
for (k, v) in headers.into_iter() {
|
for (k, v) in headers.into_iter() {
|
||||||
let s = format!("{}: {}", k.into(), v.into());
|
self.set(k, v);
|
||||||
let header = s.parse::<Header>().expect("Failed to parse header");
|
|
||||||
add_header(&mut self.headers, header);
|
|
||||||
}
|
}
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -187,6 +186,7 @@ impl Agent {
|
|||||||
/// in all requests using the agent.
|
/// in all requests using the agent.
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
|
/// // sets a header "Authorization: token secret"
|
||||||
/// let agent = ureq::agent()
|
/// let agent = ureq::agent()
|
||||||
/// .auth_kind("token", "secret")
|
/// .auth_kind("token", "secret")
|
||||||
/// .build();
|
/// .build();
|
||||||
@@ -200,9 +200,8 @@ impl Agent {
|
|||||||
S: Into<String>,
|
S: Into<String>,
|
||||||
T: Into<String>,
|
T: Into<String>,
|
||||||
{
|
{
|
||||||
let s = format!("Authorization: {} {}", kind.into(), pass.into());
|
let value = format!("{} {}", kind.into(), pass.into());
|
||||||
let header = s.parse::<Header>().expect("Failed to parse header");
|
self.set("Authorization", value);
|
||||||
add_header(&mut self.headers, header);
|
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,13 @@ impl ::std::fmt::Debug for Header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Header {
|
impl Header {
|
||||||
|
pub fn new(name: &str, value: &str) -> Result<Self, Error> {
|
||||||
|
let line =
|
||||||
|
AsciiString::from_str(&format!("{}: {}", name, value)).map_err(|_| Error::BadHeader)?;
|
||||||
|
let index = name.len();
|
||||||
|
Ok(Header { line, index })
|
||||||
|
}
|
||||||
|
|
||||||
/// The header name.
|
/// The header name.
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
|
|||||||
@@ -192,9 +192,10 @@ impl Request {
|
|||||||
K: Into<String>,
|
K: Into<String>,
|
||||||
V: Into<String>,
|
V: Into<String>,
|
||||||
{
|
{
|
||||||
let s = format!("{}: {}", header.into(), value.into());
|
add_header(
|
||||||
let header = s.parse::<Header>().expect("Failed to parse header");
|
&mut self.headers,
|
||||||
add_header(&mut self.headers, header);
|
Header::new(&header.into(), &value.into()).expect("Failed to parse header"),
|
||||||
|
);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,9 +265,7 @@ impl Request {
|
|||||||
I: IntoIterator<Item = (K, V)>,
|
I: IntoIterator<Item = (K, V)>,
|
||||||
{
|
{
|
||||||
for (k, v) in headers.into_iter() {
|
for (k, v) in headers.into_iter() {
|
||||||
let s = format!("{}: {}", k.into(), v.into());
|
self.set(k, v);
|
||||||
let header = s.parse::<Header>().expect("Failed to parse header");
|
|
||||||
add_header(&mut self.headers, header);
|
|
||||||
}
|
}
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -424,9 +423,8 @@ impl Request {
|
|||||||
S: Into<String>,
|
S: Into<String>,
|
||||||
T: Into<String>,
|
T: Into<String>,
|
||||||
{
|
{
|
||||||
let s = format!("Authorization: {} {}", kind.into(), pass.into());
|
let value = format!("{} {}", kind.into(), pass.into());
|
||||||
let header = s.parse::<Header>().expect("Failed to parse header");
|
self.set("Authorization", value);
|
||||||
add_header(&mut self.headers, header);
|
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -204,8 +204,7 @@ fn match_cookies<'a>(jar: &'a CookieJar, domain: &str, path: &str, is_secure: bo
|
|||||||
let name = c.name().to_string();
|
let name = c.name().to_string();
|
||||||
let value = c.value().to_string();
|
let value = c.value().to_string();
|
||||||
let nameval = Cookie::new(name, value).encoded().to_string();
|
let nameval = Cookie::new(name, value).encoded().to_string();
|
||||||
let head = format!("Cookie: {}", nameval);
|
Header::new("Cookie", &nameval).ok()
|
||||||
head.parse::<Header>().ok()
|
|
||||||
})
|
})
|
||||||
.filter(|o| o.is_some())
|
.filter(|o| o.is_some())
|
||||||
.map(|o| o.unwrap())
|
.map(|o| o.unwrap())
|
||||||
|
|||||||
Reference in New Issue
Block a user