curb(Ruby的curl)没有正确使用cookiejar

时间:2011-06-01 19:40:14

标签: ruby cookies curl

我看到一些奇怪的行为与curb和它的cookiejar。在irb:

>> require 'curl'
=> true
>> a = Curl::Easy.new
=> #<Curl::Easy>
>> a.enable_cookies = true
=> true
>> a.cookiejar = "cookies.txt"
=> "cookies.txt"
>> a.url = "http://www.amazon.com"
=> "http://www.amazon.com"
>> a.perform
=> true

在这里,我想找一些方法来检索amazon.com放置的cookie,但我无法这样做。我指定为cookiejar的cookies.txt文件不存在,而#cookies方法只返回n​​il。但是,如果我退出irb,cookie.txt文件会出现,里面有正确的cookie。有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

我不确切知道ruby绑定是如何工作的,但是在底层的libcurl API中,在使用curl_easy_cleanup()“处死”句柄之前,不会保存cookie jar。我认为很多OO语言都不会在libcurl“对象”上调用该函数,直到它以某种方式被杀死/垃圾收集,或者绑定提供了一种明确杀死libcurl对象/句柄的方法。