Cookies 使用Hyper在事务之间保留cookie

Cookies 使用Hyper在事务之间保留cookie,cookies,rust,session-cookies,hyper,Cookies,Rust,Session Cookies,Hyper,我希望能够为下一个请求保留上一个请求的cookie: let hyper_client = Client::new(); server_response = hyper_client.request(Method::Get, url).headers(Headers::new()).send(); 假设以上代码已编译,我如何检索此会话的cookie?类似的操作应该可以: match server_response.headers.get() { Some(&SetCookie(

我希望能够为下一个请求保留上一个请求的cookie:

let hyper_client = Client::new();
server_response  = hyper_client.request(Method::Get, url).headers(Headers::new()).send();

假设以上代码已编译,我如何检索此会话的cookie?

类似的操作应该可以:

match server_response.headers.get() {
   Some(&SetCookie(ref content)) => println!("Cookie: {:?}", content),
   _ => println!("No cookie found"),
}
对于发送到服务器的Cookie,使用
Cookie
标题;对于从服务器发送的Cookie,使用
SetCookie
。我之所以强调这一点,是因为我一开始只看到了
Cookie
,这让我大吃一惊

另外,请注意,我只是通过模式匹配的类型推断请求
SetCookie
头。我还可以使用turbofish:
标题。get::()

如果需要将相同的cookie发送回服务器,您可以将响应中的
SetCookie
值克隆回请求的新
cookie
头中:

let mut headers = Headers::new();
// if you received cookies in the server response then send the same ones back
if let Some(&SetCookie(ref content)) = server_response.headers.get() {
   headers.set(Cookie(content.clone()));
}

hyper_client.request(Method::Get, url)
    .headers(headers)
    .send();

太好了,我现在可以找回它了!但我不能重复使用它。。。我试着做
标题。设置(内容)
和。。。它不起作用。。。我想我混淆了
SetCookie
Cookie
,有些帮助吗?我添加了一个示例,将相同的Cookie值发送回服务器。这个答案似乎过时了,因为
hyper::client::client
没有实现一个采用两个参数的方法。@PeterHall Cookie功能来自hyper,不是吗?