mirror of
https://github.com/fafhrd91/actix-web
synced 2025-06-26 06:57:43 +02:00
response header rework (#1869)
This commit is contained in:
@ -101,7 +101,7 @@ mod tests {
|
||||
header::HttpDate::from(SystemTime::now().add(Duration::from_secs(60)));
|
||||
|
||||
let req = TestRequest::default()
|
||||
.header(header::IF_MODIFIED_SINCE, since)
|
||||
.insert_header((header::IF_MODIFIED_SINCE, since))
|
||||
.to_http_request();
|
||||
let resp = file.respond_to(&req).await.unwrap();
|
||||
assert_eq!(resp.status(), StatusCode::NOT_MODIFIED);
|
||||
@ -113,7 +113,7 @@ mod tests {
|
||||
let since = file.last_modified().unwrap();
|
||||
|
||||
let req = TestRequest::default()
|
||||
.header(header::IF_MODIFIED_SINCE, since)
|
||||
.insert_header((header::IF_MODIFIED_SINCE, since))
|
||||
.to_http_request();
|
||||
let resp = file.respond_to(&req).await.unwrap();
|
||||
assert_eq!(resp.status(), StatusCode::NOT_MODIFIED);
|
||||
@ -126,8 +126,8 @@ mod tests {
|
||||
header::HttpDate::from(SystemTime::now().add(Duration::from_secs(60)));
|
||||
|
||||
let req = TestRequest::default()
|
||||
.header(header::IF_NONE_MATCH, "miss_etag")
|
||||
.header(header::IF_MODIFIED_SINCE, since)
|
||||
.insert_header((header::IF_NONE_MATCH, "miss_etag"))
|
||||
.insert_header((header::IF_MODIFIED_SINCE, since))
|
||||
.to_http_request();
|
||||
let resp = file.respond_to(&req).await.unwrap();
|
||||
assert_ne!(resp.status(), StatusCode::NOT_MODIFIED);
|
||||
@ -139,7 +139,7 @@ mod tests {
|
||||
let since = file.last_modified().unwrap();
|
||||
|
||||
let req = TestRequest::default()
|
||||
.header(header::IF_UNMODIFIED_SINCE, since)
|
||||
.insert_header((header::IF_UNMODIFIED_SINCE, since))
|
||||
.to_http_request();
|
||||
let resp = file.respond_to(&req).await.unwrap();
|
||||
assert_eq!(resp.status(), StatusCode::OK);
|
||||
@ -151,7 +151,7 @@ mod tests {
|
||||
let since = header::HttpDate::from(SystemTime::UNIX_EPOCH);
|
||||
|
||||
let req = TestRequest::default()
|
||||
.header(header::IF_UNMODIFIED_SINCE, since)
|
||||
.insert_header((header::IF_UNMODIFIED_SINCE, since))
|
||||
.to_http_request();
|
||||
let resp = file.respond_to(&req).await.unwrap();
|
||||
assert_eq!(resp.status(), StatusCode::PRECONDITION_FAILED);
|
||||
@ -398,7 +398,7 @@ mod tests {
|
||||
// Valid range header
|
||||
let request = TestRequest::get()
|
||||
.uri("/t%65st/Cargo.toml")
|
||||
.header(header::RANGE, "bytes=10-20")
|
||||
.insert_header((header::RANGE, "bytes=10-20"))
|
||||
.to_request();
|
||||
let response = test::call_service(&mut srv, request).await;
|
||||
assert_eq!(response.status(), StatusCode::PARTIAL_CONTENT);
|
||||
@ -406,7 +406,7 @@ mod tests {
|
||||
// Invalid range header
|
||||
let request = TestRequest::get()
|
||||
.uri("/t%65st/Cargo.toml")
|
||||
.header(header::RANGE, "bytes=1-0")
|
||||
.insert_header((header::RANGE, "bytes=1-0"))
|
||||
.to_request();
|
||||
let response = test::call_service(&mut srv, request).await;
|
||||
|
||||
@ -420,7 +420,7 @@ mod tests {
|
||||
// Valid range header
|
||||
let response = srv
|
||||
.get("/tests/test.binary")
|
||||
.header(header::RANGE, "bytes=10-20")
|
||||
.insert_header((header::RANGE, "bytes=10-20"))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
@ -430,7 +430,7 @@ mod tests {
|
||||
// Invalid range header
|
||||
let response = srv
|
||||
.get("/tests/test.binary")
|
||||
.header(header::RANGE, "bytes=10-5")
|
||||
.insert_header((header::RANGE, "bytes=10-5"))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
@ -445,7 +445,7 @@ mod tests {
|
||||
// Valid range header
|
||||
let response = srv
|
||||
.get("/tests/test.binary")
|
||||
.header(header::RANGE, "bytes=10-20")
|
||||
.insert_header((header::RANGE, "bytes=10-20"))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
@ -455,7 +455,7 @@ mod tests {
|
||||
// Valid range header, starting from 0
|
||||
let response = srv
|
||||
.get("/tests/test.binary")
|
||||
.header(header::RANGE, "bytes=0-20")
|
||||
.insert_header((header::RANGE, "bytes=0-20"))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
@ -560,7 +560,7 @@ mod tests {
|
||||
|
||||
let request = TestRequest::get()
|
||||
.uri("/")
|
||||
.header(header::ACCEPT_ENCODING, "gzip")
|
||||
.insert_header((header::ACCEPT_ENCODING, "gzip"))
|
||||
.to_request();
|
||||
let res = test::call_service(&mut srv, request).await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
@ -580,7 +580,7 @@ mod tests {
|
||||
|
||||
let request = TestRequest::get()
|
||||
.uri("/")
|
||||
.header(header::ACCEPT_ENCODING, "gzip")
|
||||
.insert_header((header::ACCEPT_ENCODING, "gzip"))
|
||||
.to_request();
|
||||
let res = test::call_service(&mut srv, request).await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
|
@ -282,16 +282,16 @@ impl NamedFile {
|
||||
|
||||
if self.flags.contains(Flags::PREFER_UTF8) {
|
||||
let ct = equiv_utf8_text(self.content_type.clone());
|
||||
res.header(header::CONTENT_TYPE, ct.to_string());
|
||||
res.insert_header((header::CONTENT_TYPE, ct.to_string()));
|
||||
} else {
|
||||
res.header(header::CONTENT_TYPE, self.content_type.to_string());
|
||||
res.insert_header((header::CONTENT_TYPE, self.content_type.to_string()));
|
||||
}
|
||||
|
||||
if self.flags.contains(Flags::CONTENT_DISPOSITION) {
|
||||
res.header(
|
||||
res.insert_header((
|
||||
header::CONTENT_DISPOSITION,
|
||||
self.content_disposition.to_string(),
|
||||
);
|
||||
));
|
||||
}
|
||||
|
||||
if let Some(current_encoding) = self.encoding {
|
||||
@ -361,16 +361,16 @@ impl NamedFile {
|
||||
|
||||
if self.flags.contains(Flags::PREFER_UTF8) {
|
||||
let ct = equiv_utf8_text(self.content_type.clone());
|
||||
resp.header(header::CONTENT_TYPE, ct.to_string());
|
||||
resp.insert_header((header::CONTENT_TYPE, ct.to_string()));
|
||||
} else {
|
||||
resp.header(header::CONTENT_TYPE, self.content_type.to_string());
|
||||
resp.insert_header((header::CONTENT_TYPE, self.content_type.to_string()));
|
||||
}
|
||||
|
||||
if self.flags.contains(Flags::CONTENT_DISPOSITION) {
|
||||
resp.header(
|
||||
resp.insert_header((
|
||||
header::CONTENT_DISPOSITION,
|
||||
self.content_disposition.to_string(),
|
||||
);
|
||||
));
|
||||
}
|
||||
|
||||
// default compressing
|
||||
@ -379,14 +379,14 @@ impl NamedFile {
|
||||
}
|
||||
|
||||
if let Some(lm) = last_modified {
|
||||
resp.header(header::LAST_MODIFIED, lm.to_string());
|
||||
resp.insert_header((header::LAST_MODIFIED, lm.to_string()));
|
||||
}
|
||||
|
||||
if let Some(etag) = etag {
|
||||
resp.header(header::ETAG, etag.to_string());
|
||||
resp.insert_header((header::ETAG, etag.to_string()));
|
||||
}
|
||||
|
||||
resp.header(header::ACCEPT_RANGES, "bytes");
|
||||
resp.insert_header((header::ACCEPT_RANGES, "bytes"));
|
||||
|
||||
let mut length = self.md.len();
|
||||
let mut offset = 0;
|
||||
@ -399,7 +399,7 @@ impl NamedFile {
|
||||
offset = ranges[0].start;
|
||||
|
||||
resp.encoding(ContentEncoding::Identity);
|
||||
resp.header(
|
||||
resp.insert_header((
|
||||
header::CONTENT_RANGE,
|
||||
format!(
|
||||
"bytes {}-{}/{}",
|
||||
@ -407,9 +407,12 @@ impl NamedFile {
|
||||
offset + length - 1,
|
||||
self.md.len()
|
||||
),
|
||||
);
|
||||
));
|
||||
} else {
|
||||
resp.header(header::CONTENT_RANGE, format!("bytes */{}", length));
|
||||
resp.insert_header((
|
||||
header::CONTENT_RANGE,
|
||||
format!("bytes */{}", length),
|
||||
));
|
||||
return resp.status(StatusCode::RANGE_NOT_SATISFIABLE).finish();
|
||||
};
|
||||
} else {
|
||||
|
@ -78,7 +78,7 @@ impl Service<ServiceRequest> for FilesService {
|
||||
if !is_method_valid {
|
||||
return Either::Left(ok(req.into_response(
|
||||
actix_web::HttpResponse::MethodNotAllowed()
|
||||
.header(header::CONTENT_TYPE, "text/plain")
|
||||
.insert_header(header::ContentType(mime::TEXT_PLAIN_UTF_8))
|
||||
.body("Request did not meet this resource's requirements."),
|
||||
)));
|
||||
}
|
||||
@ -102,7 +102,7 @@ impl Service<ServiceRequest> for FilesService {
|
||||
|
||||
return Either::Left(ok(req.into_response(
|
||||
HttpResponse::Found()
|
||||
.header(header::LOCATION, redirect_to)
|
||||
.insert_header((header::LOCATION, redirect_to))
|
||||
.body("")
|
||||
.into_body(),
|
||||
)));
|
||||
|
Reference in New Issue
Block a user