2017-05-06 64 views
0

我想發送一些參數到這個網站(http://www.degraeve.com/translator.php)並獲得響應我的rails應用程序。我想從名稱爲'd'的單選按鈕中選擇'binary',並在要翻譯的名稱爲'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文件 - 請親自在瀏覽器的網絡檢查器中查看。

因此,您可以發送用事先準備好的URL簡單的GET請求,像這樣(注意dw查詢參數):

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) 

,然後相應地解析響應。

+0

感謝您的回答! –

相關問題