2012-04-17 17 views
6

フォーム内のボタンをクリックすると、次のコードによって処理されるPOST要求が送信されます。Sinatraコード内でPOSTリクエストを作成するには?

post '/register' do 
    #send post request to http://www.randomsite.com 
    #parse response 
    #do something with it 
    @user = User.first(:name => params['regUsername']) 
    if @user == nil 
    @user = User.create(
    :name   => params['regUsername'], 
    :pass   => Password.create(params['regPassword']), 
    :email  => params['regEmail'], 
    :created_date => Time.now 
    ) 
    redirect '/' 
    else 
    "User already exists." 
    end 
end 

Rubyコード内から別のPOSTリクエストを別のWebサイトに送信するにはどうすればよいですか?

答えて

9

Ruby標準ライブラリのNet::HTTPまたはHTTParty gemを使用してください。

+0

Net :: HTTPを使用して複数のパラメータを投稿リクエストとともに送信するにはどうすればよいですか? – Takkun

+0

@Takkunこれはリンクされた例の13行目に示されています。 –

+0

クライアントのリクエストの処理中に別のサイトからのリクエストに注意してください。その2番目のサイトに遅延がある場合、クライアントはそれを見て、あなたのコード、サーバーまたはサイトを責めます。リクエスト中にそれを行うのではなく、可能な限り早く実行して結果をキャッシュするか、メタデータをローカルデータベースに保存して、すぐに呼び出し元に返すことができます。これに使用できるいくつかの[Ruby用HTTPクライアント](https://www.ruby-toolbox.com/categories/http_clients)があります。 –

関連する問題