2012-01-25 5 views
1

私はウェブサイトにデータを渡すために、次のコードを使用します。Net :: HTTP.post_formを使用して有効なURLを持つ404を取得するのはなぜですか?

require "net/http" 
params = {"message"=>"some message", "to"=>"someone"} 
Net::HTTP.post_form(URI.parse("http://example.com/m/send"),params) 

私は、Webページを閲覧すると、フォームアクションがhttp://example.com/m/sendであると私は何の問題もなく、サイト自体を使用してデータを投稿することができます。

私はHTTP 404を取得しておくと、私のデータは、データベースに渡されていません。

GETメソッドでページをリクエストすると、承認されていないリクエストエラーであるHTTP 405が返されます。これにより、ページが存在することが保証されます。

URLが有効であるので

、どのようなデータが掲載されるのを防ぐのでしょうか?そして私はそれをどのように修正できますか?

+0

ターゲットフォームは、クッキーのデータが必要な場合があります。ターゲットサイトのオーナーですか? – Baldrick

+0

いいえ、私はそうではありません。それがどうすればこの問題を回避できますか? 「それは私がこの問題を回避することができますどのようにのようなものですか?」 – Madgen

+0

は、最も簡単な答えはMechanizeの宝石を使用することです。あなたのためにクッキーを追跡し、必要に応じてそれらを再送信します。 –

答えて

0

私はもっぱらネット/ HTTPライブラリを使用して問題を解決することができませんでした。しかし、Tin Manがコメントに示唆しているように、Mechanize gemは問題を解決し、データをサーバーに正常に投稿します。

また、リダイレクトを以下の観点から、より柔軟かつ容易です。したがって、誰かが私のようにこの問題に遭遇した場合、私はMechanize gemを使用することをお勧めします。