2017-05-06 17 views
0

私はこのウェブサイト(http://www.degraeve.com/translator.php)にいくつかのパラメータを送ろうとしていて、私のレールアプリケーションへの応答を得ようとしています。名前が 'd'のラジオボタンから 'バイナリ'を選択し、翻訳する名前が 'w'のテキストフィールドに 'a'だけを入れたいとします。 私は私のコントローラ上でこのアクションを使用しています:他のウェブサイトのフォームに投稿し、Railsで返信する

class RoomsController < ApplicationController 
    require "uri" 
    require "net/http" 
    require 'json' 


    def test  

    uri = URI.parse("http://www.degraeve.com/translator.php") 
    header = {'Content-Type': 'text/json'} 
    params = { d: 'binary', w: 'a' } 

    # Create the HTTP objects 
    http = Net::HTTP.new(uri.host, uri.port) 
    request = Net::HTTP::Post.new(uri.request_uri, header) 
    request.body = params.to_json 

    # Send the request 
    response = http.request(request) 
    render json: response.body 
    end 
end 

は、何か問題はありますか?それはフォームを提出する前にhttp://www.degraeve.com/translator.phpの本体をレンダリングするだけですが、提出された後に本体を取得したいと思います。

答えて

1

"翻訳!"ボタンを押した後に何が起こるかを見ると、ボタンをクリックすると、POST経由でフォームが送信されていないことがわかります。代わりに、GETリクエストが送信され、HTMLファイルが返されます。ブラウザのネットワークインスペクタで自分自身を参照してください。

uri = URI.parse("http://www.degraeve.com/cgi-bin/babel.cgi?d=binary&url=http%3A%2F%2Fwww.multivax.com%2Flast_question.html&w=a") 
response = Net::HTTP.get_print(uri) 

をし、それに応じて応答を解析:

その結果、あなたはこのように(dwクエリパラメータに注意してください)、準備されたURLを持つ単純なGETリクエストを送信することができます。

+0

答えをありがとう! –

関連する問題