Cookies 跨连续get请求持久化会话/cookie

Cookies 跨连续get请求持久化会话/cookie,cookies,get,rest-client,Cookies,Get,Rest Client,我正在运行一个脚本,该脚本需要使用restclientgem执行几个对API的GET请求 但是,此API需要保存cookie和会话才能正常运行 我有这个: # first request url = "http://example-api.com/first-endpoint?param1=foo&param2=bar request = RestClient.get url, :content_type => :json, :accept => :json cookies

我正在运行一个脚本,该脚本需要使用restclientgem执行几个对API的GET请求

但是,此API需要保存cookie和会话才能正常运行

我有这个:

# 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
为了使第二个请求生效,我需要保持相同的会话和cookie。使用RestClient,我可以在POST请求中发回cookie,如下所示:

RestClient.post post_url, {}, {:cookies => cookies}
但是我在他们的文档中找不到任何方法来为GET请求执行此操作

在两个连续的GET请求之间,我应该如何继续“保持”Cookie活动?如果RestClient不支持,我也愿意使用其他gem或技术

任何帮助都将不胜感激

我试过这个:

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

而且它似乎工作得很好

请注意,如果您想要更全面的cookie支持,在最新版本的rest client(>=2.0.0)中,您可以使用实际的cookie jar(
HTTP::CookieJar
),它在以下过期/域/路径限制中的行为更像浏览器

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

resp2 = RestClient::Request.execute(url: someurl, method: :get, cookies: jar)