发布到其他网站的表单并获得Rails的回复

时间:2017-05-06 20:26:26

标签: ruby-on-rails json post httprequest net-http

我正在尝试将一些参数发送到此网站(http://www.degraeve.com/translator.php)并获取对我的rails应用程序的响应。我想选择二进制'从收音机按钮的名称是' d'并且只是' a'在名称为' w'的文本字段上待翻译。 我在我的控制器上使用此操作:

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 个答案:

答案 0 :(得分:1)

当你看到按下&#34;翻译后会发生什么!&#34;按钮您可能会注意到没有通过POST提交表单。相反,会发送GET请求并返回HTML文件 - 请在浏览器的网络检查员中自行查看。

因此,您可以使用准备好的网址发送简单的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)

然后相应地解析响应。