Cookies 使用Hyper在事务之间保留cookie
我希望能够为下一个请求保留上一个请求的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(
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,不是吗?