3

我想从请求中获取 cookie 的值。我发现在 Actix 0.xx 中,cookie 的值可以通过调用获得

fn get_cookie(req: HttpRequest) {
    let cookie = req.cookie("name") <-- Here

    return HttpResponse::Ok()
        .body(
            format!("{}", cookie);
        )
}

我对 Rust 和 Actix 很陌生。目前我正在从声明的函数中解析它,该函数得到HttpRequest.headers(). 我不确定在 Actix 0.xx 中是否有直接获取 cookie 的方法

pub fn get_cookie(req: HttpRequest, name: &str) -> String {
    let cookie: Vec<&str> = req
        .headers()
        .get("cookie")
        .unwrap()
        .to_str()
        .unwrap()
        .split("&")
        .collect();

    let auth_token: Vec<&str> = cookie
        .into_iter()
        .filter(|each| {
            let body: Vec<&str> = each.split("=").collect();

            body[0] == name
        })
        .collect();

    let cookie_part: Vec<&str> = auth_token[0].split("=").collect();

    cookie_part[1].to_owned() 
}
4

1 回答 1

2

HttpRequest 实现 了 HttpMessage,它有一个 cookie 方法,所以只是调用它?

于 2020-07-01T07:39:29.997 回答