2

(Sinatraに基づく)HTTPサービスをテストするためのHTTPクライアントとしてFaradayを使用しています。それは私にとって非常に強力ですが、私には問題があります。

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

The Set-Cookie and Cookie headers are not the same, read the RFC to know how to interpret them. In short the Set-Cookie header also contains instructions for the client how to handle the data (domain, path, expiry, etc.) and gives an update to the existing cookie store. The Cookie header on the other hand provides the contents of the cookie store, but not the meta data.

You would need to obtain or implement some kind of cookie handler to insert into your Faraday middle-ware stack.

于 2012-10-17T08:55:11.823 に答える