diff --git a/CHANGES.md b/CHANGES.md index cfb0f3e04..20fdb3e48 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,8 @@ * Fix compression #103 and #104 +* Fix client cookie support #101 + * Enable compression support for `NamedFile` * Better support for `NamedFile` type diff --git a/src/client/request.rs b/src/client/request.rs index 38881318d..f04f402b7 100644 --- a/src/client/request.rs +++ b/src/client/request.rs @@ -292,13 +292,14 @@ impl ClientRequestBuilder { /// # extern crate actix_web; /// # use actix_web::*; /// # use actix_web::httpcodes::*; + /// # use actix_web::client::*; /// # /// use actix_web::header; /// /// fn main() { /// let req = ClientRequest::build() /// .set(header::Date::now()) - /// .set(header::ContentType(mime::TEXT_HTML) + /// .set(header::ContentType(mime::TEXT_HTML)) /// .finish().unwrap(); /// } /// ``` @@ -452,20 +453,6 @@ impl ClientRequestBuilder { self } - /// Remove cookie, cookie has to be cookie from `HttpRequest::cookies()` method. - pub fn del_cookie<'a>(&mut self, cookie: &Cookie<'a>) -> &mut Self { - { - if self.cookies.is_none() { - self.cookies = Some(CookieJar::new()) - } - let jar = self.cookies.as_mut().unwrap(); - let cookie = cookie.clone().into_owned(); - jar.add_original(cookie.clone()); - jar.remove(cookie); - } - self - } - /// Do not add default request headers. /// By default `Accept-Encoding` header is set. pub fn no_default_headers(&mut self) -> &mut Self { @@ -559,8 +546,7 @@ impl ClientRequestBuilder { if let Some(ref jar) = self.cookies { for cookie in jar.delta() { request.headers.append( - header::SET_COOKIE, - HeaderValue::from_str(&cookie.to_string())?); + header::COOKIE, HeaderValue::from_str(&cookie.to_string())?); } } request.body = body.into(); diff --git a/src/client/response.rs b/src/client/response.rs index 392c91332..cc401f8bd 100644 --- a/src/client/response.rs +++ b/src/client/response.rs @@ -77,12 +77,12 @@ impl ClientResponse { self.as_ref().status } - /// Load request cookies. + /// Load response cookies. pub fn cookies(&self) -> Result<&Vec>, CookieParseError> { if self.as_ref().cookies.is_none() { let msg = self.as_mut(); let mut cookies = Vec::new(); - if let Some(val) = msg.headers.get(header::COOKIE) { + if let Some(val) = msg.headers.get(header::SET_COOKIE) { let s = str::from_utf8(val.as_bytes()) .map_err(CookieParseError::from)?; for cookie in s.split("; ") {