所以我有一个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状态。
我正在查看httparty
和rest-client
的等效魔术功能。我看到了对cookiejars和Resources的引用,但到目前为止使用cookiejar来设置cookie并不适合我。
Ruby生态系统中是否有办法在Python的请求等多个请求中自动处理cookie.Session?
谢谢~~
答案 0 :(得分:1)
试试mechanize。例如:
mechanize = Mechanize.new
page = mechanize.get(url)
other_page = mechanize.get(other_url)
这会在请求中保留Cookie。