我正在尝试将一些参数发送到此网站(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的正文,但我想在提交之后获取正文。
答案 0 :(得分:1)
当你看到按下&#34;翻译后会发生什么!&#34;按钮您可能会注意到没有通过POST提交表单。相反,会发送GET请求并返回HTML文件 - 请在浏览器的网络检查员中自行查看。
因此,您可以使用准备好的网址发送简单的GET请求,例如{注意d
和w
查询参数):
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)
然后相应地解析响应。