diff --git a/guide/src/qs_7.md b/guide/src/qs_7.md index abad8dfe..356c1d81 100644 --- a/guide/src/qs_7.md +++ b/guide/src/qs_7.md @@ -3,7 +3,7 @@ ## Content encoding Actix automatically *compress*/*decompress* payload. -Following encodings are supported: +Following codecs are supported: * Brotli * Gzip @@ -13,17 +13,23 @@ Following encodings are supported: If request headers contains `Content-Encoding` header, request payload get decompressed according to header value. Multiple codecs are not supported, i.e: `Content-Encoding: br, gzip`. -Response payload get compressed based on `content_encoding` settings. -If `ContentEncoding::Auto` is selected then compression depends on request's -`Accept-Encoding` header. `ContentEncoding::Identity` could be used to disable compression. -If other content encoding is selected the compression is enforced. +Response payload get compressed based on *content_encoding* parameter. +By default `ContentEncoding::Auto` is used. If `ContentEncoding::Auto` is selected +then compression depends on request's `Accept-Encoding` header. +`ContentEncoding::Identity` could be used to disable compression. +If other content encoding is selected the compression is enforced for this codec. For example, +to enable `brotli` response's body compression use `ContentEncoding::Br`: + +```rust +extern crate actix_web; +use actix_web::*; -```rust,ignore fn index(req: HttpRequest) -> HttpResponse { HttpResponse::Ok() .content_encoding(ContentEncoding::Br) - .body(Body) + .body("data").unwrap() } +# fn main() {} ``` ## JSON Response diff --git a/src/httpresponse.rs b/src/httpresponse.rs index da26c678..ef757e1a 100644 --- a/src/httpresponse.rs +++ b/src/httpresponse.rs @@ -1,5 +1,5 @@ //! Pieces pertaining to the HTTP response. -use std::{io, mem, str, fmt}; +use std::{mem, str, fmt}; use std::convert::Into; use cookie::CookieJar; @@ -157,17 +157,6 @@ impl HttpResponse { self.chunked } - /// Enables automatic chunked transfer encoding - pub fn enable_chunked_encoding(&mut self) -> Result<(), io::Error> { - if self.headers.contains_key(header::CONTENT_LENGTH) { - Err(io::Error::new(io::ErrorKind::Other, - "You can't enable chunked encoding when a content length is set")) - } else { - self.chunked = true; - Ok(()) - } - } - /// Content encoding pub fn content_encoding(&self) -> &ContentEncoding { &self.encoding @@ -597,6 +586,7 @@ mod tests { fn test_basic_builder() { let resp = HttpResponse::Ok() .status(StatusCode::NO_CONTENT) + .header("X-TEST", "value") .version(Version::HTTP_10) .finish().unwrap(); assert_eq!(resp.version(), Some(Version::HTTP_10));