2012-04-17 11 views
2

私は4つの異なるリダイレクトを行い、常にクッキーを渡すようなサイトはありません。Ruby :: Mechanize :: cookie_jar

だから私はここに調査などのソリューションのいくつか試してみた:毎回一時cookie_jarを作成していることを割り当てる

を。 私は手動でもそうのようなクッキーを渡すことを試みてきました:

cookie = Mechanize::Cookie.new("TLSID",bot.cookie_jar.jar['.manageyourloans.com']  
["/"]["TLSID"].value) 
cookie.domain = ".manageyourloans.com" 
cookie.path = "/" 
bot.cookie_jar.add(bot.history.last.uri,cookie) 

cookie = Mechanize::Cookie.new("TLHID",bot.cookie_jar.jar['.manageyourloans.com'] 
["/"]["TLHID"].value) 
cookie.domain = ".manageyourloans.com" 
cookie.path = "/" 
bot.cookie_jar.add(bot.history.last.uri,cookie) 

上記の問題は、それが通過する必要がない場合、私はエラーを取得するということです。
以下のことが可能ですか?合格したと思われる10〜12の異なるクッキー値があり、一部はすべてのページ(リダイレクト)またはそれらのほんの一部です。上記を行い、手動でクッキーを渡すにはどうしますか?値が存在しない場合はnullを渡します。

これを行うには良い方法がありますか?

答えて

0

cookieドメインが.domain.comのように見え、要求がdomain.comの場合、特定のバージョンのmechanizeで過去に問題が発生していたことがわかりました。

class Mechanize::Cookie 
    class << self; alias_method :old_parse, :parse end 
    def self.parse(uri, str, log = Mechanize.log, &block) 
    str.gsub!(/domain[^;]*;/,'') 
    old_parse(uri, str, log, &block) 
    end 
end 
+0

感謝:クッキーのドメイン部分を取り除くために機械化

これはそれに対処するための最良の方法ではないかもしれないが、時間の私の解決策は、モンキーパッチにしました!これは機能します。 – user1198316

関連する問題