2016-08-08 23 views
0

RestClient gemを使用してAPIにいくつかのGETリクエストを実行する必要があるスクリプトを実行しています。連続した取得リクエスト間でセッション/ Cookieを維持する

ただし、正しく機能するには、このAPIでクッキー&のセッションを維持する必要があります。

私はこれ持っている:第2の要求の作業を行うために

# first request 
url = "http://example-api.com/first-endpoint?param1=foo&param2=bar 
request = RestClient.get url, :content_type => :json, :accept => :json 
cookies = request.cookies 

# second request 
url = "http://example-api.com/second-endpoint?param1=foo&param2=bar 
request = RestClient.get url, :content_type => :json, :accept => :json 

を、私は同じセッションとクッキーを維持する必要があります。

RestClient.post post_url, {}, {:cookies => cookies} 

をしかし、私はStackOverflowの上でのドキュメント&でGETリクエストのためにこれを行うにはどのような方法を見つけることができませんでした:RestClientを使用して、私はこのようなPOSTリクエストでCookieを送り返すことができます。

2つの連続したGET要求の間にクッキーを「保持」する方法を教えてください。 RestClientがこれをサポートしていない場合、別の宝石やテクニックを使用することもできます。

ご協力いただければ幸いです。

答えて

0

私はこの試みた:

RestClient.get url,{:cookies => cookies} 

をそして、正常に動作するようです!

1

最近のバージョンのrest-client(> = 2.0.0)では、完全な本格的なcookieサポートが必要な場合は、実際のcookie jar(HTTP::CookieJar)を使用することができます。これは、 /ドメイン/パスの制限。

resp = RestClient.get(url) 
jar = resp.cookie_jar 

resp2 = RestClient::Request.execute(url: someurl, method: :get, cookies: jar) 
関連する問題