- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Rubyでnet::httpを用いてPOSTする)
RubyでNet::HTTPを用いてPOSTする方法とは?
このQ&Aのポイント
- RubyでNet::HTTPを使用してPOST送信する方法について教えてください。
- Net::HTTPクラスのpostメソッドを使用して送信する際、パラメータのデリミタとして&を含む値を渡す方法についても教えてください。
- Net::HTTP::Postクラスのrequestメソッドとは異なり、postメソッド使用時にキチンと値を取得できない場合、対処方法があるのか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
この辺ちゃんと使った経験が無いので、「普通こうする」という回答にはなって無いかもしれませんが・・・ >Net**HTTP::Postクラスのrequestメソッドを用いてハッシュとして渡した時 これは、 #set_form_data (#form_data=) で予め値を入れたっていうことですよね? net/http ライブラリのソースを覗いてみると、set_form_dataの方はエンコードかけていますが、HTTP#postの2引数目はそのまま文字列として取り扱っているみたいです。 ということで、一度きりの使い捨てなら「query=subject&target=ruby&PHP」を「query=subject&target=ruby%26PHP」へ書き換えれば済むんじゃないでしょうか。 こういう使い方が多いのであれば、ヘルパーメソッド作っておいてもいいかもしれませんが・・・ https://ideone.com/3fi2I そもそも、HTTP#post側だとこういう用法を想定していないのかもしれませんね。 フォームのデータ送るなら、#form_data=を予め使っておく方が素直なのかもしれません。
お礼
なるほど・・。postメソッドを使いたい理由は、単純に記述が短くてすむかなとおもたからです。 Net::HTTP::Postとだと、間にワンクッション挟むことになるので ちょこと冗長になるかなと・・・・・・。 Net::HTTP::Postをつかって自分で、楽な自作メソッドつくったほうがいいかもですね・・。