如何在法拉第中设置cookie

时间:2012-08-05 13:57:53

标签: session cookies sinatra faraday

我正在使用Faraday作为HTTP客户端来测试我的HTTP服务(基于Sinatra)。这对我来说非常强大,但我有一个问题。

我们跟踪Sinatra服务的会话,但我无法使用法拉第客户端设置cookie值。这是示例代码:

# `response` is from the Sinatra service
cookie = response.headers['set-cookie']

# now, for the follow up request...
response = client.get '/api/profile' do |req|
  req.headers['Cookie'] = cookie
end

服务器无法找到会话。为什么呢?

1 个答案:

答案 0 :(得分:2)

Set-CookieCookie标头不相同,请阅读RFC以了解如何解释它们。简而言之,Set-Cookie标题还包含客户端如何处理数据(域,路径,到期等)的说明,并为现有cookie存储提供更新。另一方面,Cookie标头提供cookie存储的内容,但不提供元数据。

您需要获取或实现某种cookie处理程序才能插入到Faraday中间件堆栈中。