2

我使用 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

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

4

1 回答 1

1

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

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

于 2012-10-17T08:55:11.823 回答