溫課

axum框架當中獲取請求header, 和獲取header指定字段的方法

在这个环节里, 你不需要在路由上动手脚。在http路由指向的方法当中传一个参数, 类型为axum::http::HeaderMap

当需要获取指定的请求头字段时, 假设你传进来的HeaderMap参数的名字叫some_headers, 则使用

some_headers.get("字段名")

的方式来获取。cookie的话可以通过以下方式获取

some_headers.get("cookie")

demo代码如下:

use axum::{response::Html, http::HeaderMap, response::IntoResponse};
pub async fn handler() -> Html<&'static str> {
    // 默认页
    Html("<h2>Service Unavailable.</h2>")
}
pub async fn test(headers:HeaderMap) -> impl IntoResponse {
    // 获取请求头单个的User-Agent字段
    println!("User-Agent: {:?}", headers.get("user-agent"));
    // 打印全部字段
    for (key, value) in headers.iter() {
        println!("{:?}: {:?}", key, value);
    }
    // headers.insert("x-my-hdr", "abc".parse().unwrap());
    // (headers, "It works!")
}


精彩推薦

我要說兩句
網上嘉賓點評
(沙發已空)