Rust Actix-Web v4 使用自定义 header 创建响应
Rust Actix-Web v4 creating a response with custom header
我正在尝试使用 actix-web v4.
在处理程序中创建响应
header
方法已更改为 append_header
,现在它采用 header object.
而不是键值对
原始文档here给出了以下示例:
use actix_web::HttpResponse;
async fn index() -> HttpResponse {
HttpResponse::Ok()
.content_type("plain/text")
.header("X-Hdr", "sample")
.body("data")
}
我可以使用预定义的 MIME 名称创建 header 和 append_header(ContentType::plaintext())
,但我还没有找到任何创建自定义类型的方法。
我本来希望像 Header::from("'X-Hdr': 'sample'")
这样的东西可以工作,但还没有找到任何方法来创建这个 header。
在 actix-web v4 中创建 'X-Hdr':'sample'
header 的正确方法是什么?
pub fn append_header<H>(&mut self, header: H) -> &mut Self where
H: IntoHeaderPair,
append_header
方法接受任何实现 IntoHeaderPair
的类型。如果您查看该特征的文档,您会发现它是为以下对象实现的:
(&'_ HeaderName, V)
(&'_ str, V)
(HeaderName, V)
(&'_ [u8], V)
(String, V)
V
是实现 IntoHeaderValue
的任何类型,包括 String
、&str
、Vec
和整数类型。
因此你可以简单地写成.append_header(("X-Hdr", "sample"))
我正在尝试使用 actix-web v4.
在处理程序中创建响应header
方法已更改为 append_header
,现在它采用 header object.
原始文档here给出了以下示例:
use actix_web::HttpResponse;
async fn index() -> HttpResponse {
HttpResponse::Ok()
.content_type("plain/text")
.header("X-Hdr", "sample")
.body("data")
}
我可以使用预定义的 MIME 名称创建 header 和 append_header(ContentType::plaintext())
,但我还没有找到任何创建自定义类型的方法。
我本来希望像 Header::from("'X-Hdr': 'sample'")
这样的东西可以工作,但还没有找到任何方法来创建这个 header。
在 actix-web v4 中创建 'X-Hdr':'sample'
header 的正确方法是什么?
pub fn append_header<H>(&mut self, header: H) -> &mut Self where
H: IntoHeaderPair,
append_header
方法接受任何实现 IntoHeaderPair
的类型。如果您查看该特征的文档,您会发现它是为以下对象实现的:
(&'_ HeaderName, V)
(&'_ str, V)
(HeaderName, V)
(&'_ [u8], V)
(String, V)
V
是实现 IntoHeaderValue
的任何类型,包括 String
、&str
、Vec
和整数类型。
因此你可以简单地写成.append_header(("X-Hdr", "sample"))