Cookies 跨连续get请求持久化会话/cookie
我正在运行一个脚本,该脚本需要使用restclientgem执行几个对API的GET请求 但是,此API需要保存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¶m2=bar request = RestClient.get url, :content_type => :json, :accept => :json cookies
# first request
url = "http://example-api.com/first-endpoint?param1=foo¶m2=bar
request = RestClient.get url, :content_type => :json, :accept => :json
cookies = request.cookies
# second request
url = "http://example-api.com/second-endpoint?param1=foo¶m2=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)