需要在Ruby ala Python的请求中坚持使用cookies#39;库Session()对象

时间:2018-02-23 15:49:32

标签: python ruby python-requests rest-client httparty

所以我有一个Python脚本,可以成功地使用get和post请求调用一系列URL,这最终会产生一个我可以用于进一步工作的身份验证令牌。 Python脚本使用requests库,并使用Session对象启动,如下所示:

session = requests.Session()
initial_auth = session.request('GET', login_url)
step_2_url = do_stuff_to_initial_auth()
intermediate_token = session.request('POST', step_2_url)
step_3_url = do_stuff_to_intermediate_token()
final_auth = session.request('GET', step_3_url)

我试图将脚本移植到Ruby,但脚本在最后一步失败了 - 远程服务返回了一些“过期”的页面。 html而不是Python脚本收到的成功页面。深入挖掘,我发现在步骤之间传递了相当数量的cookie状态,并且Python的request.Session对象正在幕后自动处理cookie状态。

我正在查看httpartyrest-client的等效魔术功能。我看到了对cookiejars和Resources的引用,但到目前为止使用cookiejar来设置cookie并不适合我。

Ruby生态系统中是否有办法在Python的请求等多个请求中自动处理cookie.Session?

谢谢~~

1 个答案:

答案 0 :(得分:1)

试试mechanize。例如:

mechanize  = Mechanize.new
page       = mechanize.get(url)
other_page = mechanize.get(other_url)

这会在请求中保留Cookie。