在Ruby中发送URL请求

时间:2013-11-15 18:59:02

标签: ruby http url

我有一个通过以太网连接的设备,通过网络浏览器界面接收设置 当用户单击“更新设置”时,该按钮会调用格式为

的URL
{{IP}}/cgi-bin/webinterfaceSharedMemoryClient.cgi?key=value&key=value&key=value

其中{{IP}}是设备的设置IP。

有没有人知道我如何使用Ruby发送它,而不使用网络浏览器?

3 个答案:

答案 0 :(得分:2)

最简单的:

require 'open-uri'
url = "IP/cgi-bin/webinterfaceSharedMemoryClient.cgi?key=value&key=value&key=value"
response = open(url) { |io| io.read }

如果有更多控制权,请使用Net::HTTP

答案 1 :(得分:1)

在红宝石中有一个名为Net的库,它可以做你想要的。最简单的用法是:

require 'net/http'

uri = URI('http://#.#.#.#/cgi-bin/webinterfaceSharedMemoryClient.cgi?key=value&key=value&key=value')
Net::HTTP.get(uri) # => results

这主要来自这里的Ruby 2.0文档:http://ruby-doc.org/stdlib-2.0.0/libdoc/net/http/rdoc/Net/HTTP.html

答案 2 :(得分:1)

另一种选择是mechanize宝石。这是一个例子:

require 'mechanize'

agent = Mechanize.new
page = agent.get "http://www.example.org/"
page.link_with(:text => 'More information...').click