mirror of
https://github.com/actix/actix-web.git
synced 2024-11-26 11:31:09 +00:00
Remove content_length from ResponseBuilder (#1491)
* Remove content_length since it'll be overwritten by the response body. FIXES #1439 * Add setting of Content-Length to the no_chunking function * Add changes and migration documentations * Update MIGRATION.md Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com> Co-authored-by: Rob Ede <robjtede@icloud.com> Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
This commit is contained in:
parent
426a9b5d4d
commit
32a37b7282
7 changed files with 14 additions and 13 deletions
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
* actix-http support for Actors messages was moved to actix-http crate and is enabled
|
* actix-http support for Actors messages was moved to actix-http crate and is enabled
|
||||||
with feature `actors`
|
with feature `actors`
|
||||||
|
* content_length function is removed from actix-http.
|
||||||
|
You can set Content-Length by normally setting the response body or calling no_chunking function.
|
||||||
|
|
||||||
* `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a
|
* `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a
|
||||||
`u64` instead of a `usize`.
|
`u64` instead of a `usize`.
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Bump minimum supported Rust version to 1.40
|
* Bump minimum supported Rust version to 1.40
|
||||||
|
* content_length function is removed, and you can set Content-Length by calling no_chunking function [#1439]
|
||||||
|
|
||||||
* `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a
|
* `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a
|
||||||
`u64` instead of a `usize`.
|
`u64` instead of a `usize`.
|
||||||
|
@ -13,6 +14,9 @@
|
||||||
|
|
||||||
* Support parsing of `SameSite=None` [#1503]
|
* Support parsing of `SameSite=None` [#1503]
|
||||||
|
|
||||||
|
[#1439]: https://github.com/actix/actix-web/pull/1439
|
||||||
|
[#1503]: https://github.com/actix/actix-web/pull/1503
|
||||||
|
|
||||||
## [2.0.0-alpha.3] - 2020-05-08
|
## [2.0.0-alpha.3] - 2020-05-08
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
@ -472,7 +472,9 @@ impl ResponseBuilder {
|
||||||
|
|
||||||
/// Disable chunked transfer encoding for HTTP/1.1 streaming responses.
|
/// Disable chunked transfer encoding for HTTP/1.1 streaming responses.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn no_chunking(&mut self) -> &mut Self {
|
pub fn no_chunking(&mut self, len: u64) -> &mut Self {
|
||||||
|
self.header(header::CONTENT_LENGTH, len);
|
||||||
|
|
||||||
if let Some(parts) = parts(&mut self.head, &self.err) {
|
if let Some(parts) = parts(&mut self.head, &self.err) {
|
||||||
parts.no_chunking(true);
|
parts.no_chunking(true);
|
||||||
}
|
}
|
||||||
|
@ -497,12 +499,6 @@ impl ResponseBuilder {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Set content length
|
|
||||||
#[inline]
|
|
||||||
pub fn content_length(&mut self, len: u64) -> &mut Self {
|
|
||||||
self.header(header::CONTENT_LENGTH, len)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Set a cookie
|
/// Set a cookie
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
|
|
@ -275,7 +275,7 @@ async fn test_h2_head_binary() {
|
||||||
let mut srv = test_server(move || {
|
let mut srv = test_server(move || {
|
||||||
HttpService::build()
|
HttpService::build()
|
||||||
.h2(|_| {
|
.h2(|_| {
|
||||||
ok::<_, ()>(Response::Ok().content_length(STR.len() as u64).body(STR))
|
ok::<_, ()>(Response::Ok().body(STR))
|
||||||
})
|
})
|
||||||
.openssl(ssl_acceptor())
|
.openssl(ssl_acceptor())
|
||||||
.map_err(|_| ())
|
.map_err(|_| ())
|
||||||
|
|
|
@ -281,7 +281,7 @@ async fn test_h2_head_binary() {
|
||||||
let mut srv = test_server(move || {
|
let mut srv = test_server(move || {
|
||||||
HttpService::build()
|
HttpService::build()
|
||||||
.h2(|_| {
|
.h2(|_| {
|
||||||
ok::<_, ()>(Response::Ok().content_length(STR.len() as u64).body(STR))
|
ok::<_, ()>(Response::Ok().body(STR))
|
||||||
})
|
})
|
||||||
.rustls(ssl_acceptor())
|
.rustls(ssl_acceptor())
|
||||||
})
|
})
|
||||||
|
|
|
@ -490,7 +490,7 @@ async fn test_h1_head_binary() {
|
||||||
let mut srv = test_server(|| {
|
let mut srv = test_server(|| {
|
||||||
HttpService::build()
|
HttpService::build()
|
||||||
.h1(|_| {
|
.h1(|_| {
|
||||||
ok::<_, ()>(Response::Ok().content_length(STR.len() as u64).body(STR))
|
ok::<_, ()>(Response::Ok().body(STR))
|
||||||
})
|
})
|
||||||
.tcp()
|
.tcp()
|
||||||
})
|
})
|
||||||
|
|
|
@ -349,7 +349,7 @@ async fn test_body_br_streaming() {
|
||||||
async fn test_head_binary() {
|
async fn test_head_binary() {
|
||||||
let srv = test::start_with(test::config().h1(), || {
|
let srv = test::start_with(test::config().h1(), || {
|
||||||
App::new().service(web::resource("/").route(
|
App::new().service(web::resource("/").route(
|
||||||
web::head().to(move || HttpResponse::Ok().content_length(100).body(STR)),
|
web::head().to(move || HttpResponse::Ok().body(STR)),
|
||||||
))
|
))
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -371,8 +371,7 @@ async fn test_no_chunking() {
|
||||||
let srv = test::start_with(test::config().h1(), || {
|
let srv = test::start_with(test::config().h1(), || {
|
||||||
App::new().service(web::resource("/").route(web::to(move || {
|
App::new().service(web::resource("/").route(web::to(move || {
|
||||||
HttpResponse::Ok()
|
HttpResponse::Ok()
|
||||||
.no_chunking()
|
.no_chunking(STR.len() as u64)
|
||||||
.content_length(STR.len() as u64)
|
|
||||||
.streaming(TestBody::new(Bytes::from_static(STR.as_ref()), 24))
|
.streaming(TestBody::new(Bytes::from_static(STR.as_ref()), 24))
|
||||||
})))
|
})))
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue