【问题标题】:How to set cookie in faraday如何在法拉第设置cookie
【发布时间】:2012-08-05 13:57:52
【问题描述】:

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

我们在 Sinatra 服务上跟踪会话,但我无法使用 Faraday 客户端设置 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

服务器找不到会话。为什么?

【问题讨论】:

  • 将conn.response :logger 添加到您的法拉第中间件,如README 所示。然后,请分享您的 Sinatra 和 Faraday 日志,最好通过链接到 Gist。
  • 我添加了记录器,但它并没有再次出错。也许这是我在其他地方的错误。对此我很抱歉

标签: session cookies sinatra faraday


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2021-11-28
  • 1970-01-01
相关资源
最近更新 更多