Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中发送URL请求_Ruby_Http_Url - Fatal编程技术网

在Ruby中发送URL请求

在Ruby中发送URL请求,ruby,http,url,Ruby,Http,Url,我有一个通过以太网连接的设备,通过web浏览器界面接收设置。 当用户单击“更新设置”按钮时,将调用具有以下格式的URL {{IP}}/cgi-bin/webinterfaceSharedMemoryClient.cgi?key=value&key=value&key=value 其中,{IP}是设备的设置IP 有人知道我如何使用Ruby发送此邮件,而不使用web浏览器吗?最简单: require 'open-uri' url = "IP/cgi-bin/webinterface

我有一个通过以太网连接的设备,通过web浏览器界面接收设置。
当用户单击“更新设置”按钮时,将调用具有以下格式的URL

{{IP}}/cgi-bin/webinterfaceSharedMemoryClient.cgi?key=value&key=value&key=value
其中,
{IP}
是设备的设置IP

有人知道我如何使用Ruby发送此邮件,而不使用web浏览器吗?

最简单:

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

进行更多控制:

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

使用
Net::HTTP

在ruby中有一个名为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文档:

Ruby中有一个名为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文档:

另一个选项是gem。下面是一个例子:

require 'mechanize'

agent = Mechanize.new
page = agent.get "http://www.example.org/"
page.link_with(:text => 'More information...').click
另一个选择是创业板。下面是一个例子:

require 'mechanize'

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

“错误的标题行格式”上面的每一项似乎都是以一种循环的方式工作的,尽管看起来我遗漏了一些东西。感谢“错误的标题行格式”,上面的每一条似乎都是以一种循环的方式工作的,尽管看起来我遗漏了一些东西。感谢您根据所使用的方法,无论是POST还是GET,您都可以使用许多不同的库或gem:OpenURI是最简单的,像HTTPClient或Urb这样的东西功能很好,但有点复杂,具体到Net::HTTP,它非常强大,但很快就会变得复杂。OpenURI不支持POST,但其他的则支持。根据所使用的方法,无论是POST还是GET,您都可以使用许多不同的库或gem:OpenURI是最简单的,像HTTPClient或Urb这样的东西功能很好,但有点复杂,具体到Net::HTTP,它非常强大,但很快就会变得复杂。OpenURI不支持POST,但其余的都支持。