[英]Rust actix-web: the trait `Handler<_, _>` is not implemented
[英]Rust Actix-Web v4 creating a response with custom header
我正在尝试使用 actix-web v4 在处理程序中创建响应。
header
方法已更改为append_header
,它现在代替键值对采用 header object。
此处的原始文档提供了以下示例:
use actix_web::HttpResponse;
async fn index() -> HttpResponse {
HttpResponse::Ok()
.content_type("plain/text")
.header("X-Hdr", "sample")
.body("data")
}
我可以使用带有预定义 mime 名称的append_header(ContentType::plaintext())
创建 header,但我还没有找到任何方法来创建自定义类型。
我本来希望像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
的类型。 如果您查看该 trait 的文档,您会发现它是针对以下各项实现的:
(&'_ HeaderName, V)
(&'_ str, V)
(HeaderName, V)
(&'_ [u8], V)
(String, V)
V
是实现IntoHeaderValue
的任何类型,包括String
、 &str
、 Vec
和 integer 类型。
因此,您可以简单地编写.append_header(("X-Hdr", "sample"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.