マイペースなプログラミング日記

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

`initialize_http_header': undefined method `strip' for nil:NilClass (NoMethodError)

HTTPのCookieを渡すプログラムを書いていたら`initialize_http_header': undefined method `strip' for nil:NilClass (NoMethodError)というのがでた。以下、そのプログラムのソース

Net::HTTP.start('mixi.jp'){|http|
    response = http.post('/login.pl', "email=#{email}&password=#{password}&next_url=./home.pl")

    cookie = response['Set-Cookie'].split(',').join(';')

    http.get("/", "Cookie=#{cookie}"){|body|
        p body
    }
}

    http.get("/", "Cookie=#{cookie}"){|body|
        p body
    }

の部分で起こっているらしい。なんだろう?と思ったら、ヘッダには文字列じゃなくてHashを渡さなければいけないのね。当然と言えば当然だけど。なので修正

    http.get("/", {"Cookie" => cookie}){|body|
        p body
    }