次のコードがあります。
http = Net::HTTP.new("www.something.com", 80)
http.set_debug_output($stdout)
http.post("/blah", "something", {'random-parameter' => 'value1="something",value2="somethingelse"'})
次に、stdout からの出力を読み取ると、次のようになります。
<- "POST /blah HTTP/1.1\r\nAccept: */*\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection: close\r\nrandom-parameter: value1=\"something\",value2=\"somethingelse\"\r\nContent-Length: 9\r\nHost: www.something.com\r\n\r\n"
<- "something"
引用符がエスケープされています。問題は、スラッシュがサーバーに送信されているように見えることです。サーバーはそれを好みません。というエラーが表示されます
Unknown value for random-parameter in header: {value1=\\\"something\\\"value2=\\\"somethingelse\\\"}
私の質問は、Net::HTTP にこれらのスラッシュを挿入しないように指示したり、ヘッダーを送信する前にスラッシュを削除したりする方法はありますか?
説明:
Rails 2.0.2 で Ruby 1.8.7 を使用しています。
文字をエスケープしているのはRailsかもしれないと思いますが、それを止める方法がわかりません。