我有一个通过以太网连接的设备,通过网络浏览器界面接收设置 当用户单击“更新设置”时,该按钮会调用格式为
的URL{{IP}}/cgi-bin/webinterfaceSharedMemoryClient.cgi?key=value&key=value&key=value
其中{{IP}}
是设备的设置IP。
有没有人知道我如何使用Ruby发送它,而不使用网络浏览器?
答案 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