如何在 ruby Shoes GUI 应用程序中发出简单的 http 请求?
How can I make simple http requests within a ruby Shoes GUI application?
我正在尝试向位于 localhost:3000 的本地 rails 应用程序 运行 发出一个简单的 http 请求。我的应用程序的代码大部分处于原型阶段,因为我只是想在尝试其他任何事情之前获得原始功能。
rails 应用只是 returns JSON 在解析之前看起来像这样
"{\"response\":\"foo is blank\"}"
这是我现在正在尝试的代码:
require 'net/http'
def get_response
return Net::HTTP.get(URI.parse("http://localhost:3000"))
end
Shoes.app(:width => 280, :height => 350) do
flow do
stack do
button "make http request and display results in an alert box" do
x = get_response
alert x
end# of button
end# of stack
end# of flow
end
我也试过将方法放在 Shoes.app 块中,但无济于事。执行时,它创建了它应该创建的所有元素,但是当我单击按钮时没有任何反应。
我知道你不应该用 ruby 鞋子做任何实际的事情,但我还是在尝试。感谢您的宝贵时间
当我尝试 运行 您的代码时遇到的问题是 Shoes 应用程序无法使用 localhost
在本地连接。不要使用 localhost
,而是使用您计算机的本地 IP 地址。
所以只要改变这个:
Net::HTTP.get(URI.parse("http://localhost:3000"))
对此:
Net::HTTP.get(URI.parse("http://10.1.4.123:3000"))
如果你电脑的本地IP是10.1.4.123
.
要查看确认发生这种情况的错误日志,请在鞋子应用程序的顶部插入此行:Shoes.show_log
或者只需在 Mac 中输入 cmd
+/
或在 Windows(?) 中输入 ctrl
+/
运行将您的 *.rb
文件放入 Shoes.app
对我来说,出现的错误是:
Connection refused - connect(2) for "::1" port 3000
我正在尝试向位于 localhost:3000 的本地 rails 应用程序 运行 发出一个简单的 http 请求。我的应用程序的代码大部分处于原型阶段,因为我只是想在尝试其他任何事情之前获得原始功能。
rails 应用只是 returns JSON 在解析之前看起来像这样
"{\"response\":\"foo is blank\"}"
这是我现在正在尝试的代码:
require 'net/http'
def get_response
return Net::HTTP.get(URI.parse("http://localhost:3000"))
end
Shoes.app(:width => 280, :height => 350) do
flow do
stack do
button "make http request and display results in an alert box" do
x = get_response
alert x
end# of button
end# of stack
end# of flow
end
我也试过将方法放在 Shoes.app 块中,但无济于事。执行时,它创建了它应该创建的所有元素,但是当我单击按钮时没有任何反应。
我知道你不应该用 ruby 鞋子做任何实际的事情,但我还是在尝试。感谢您的宝贵时间
当我尝试 运行 您的代码时遇到的问题是 Shoes 应用程序无法使用 localhost
在本地连接。不要使用 localhost
,而是使用您计算机的本地 IP 地址。
所以只要改变这个:
Net::HTTP.get(URI.parse("http://localhost:3000"))
对此:
Net::HTTP.get(URI.parse("http://10.1.4.123:3000"))
如果你电脑的本地IP是10.1.4.123
.
要查看确认发生这种情况的错误日志,请在鞋子应用程序的顶部插入此行:Shoes.show_log
或者只需在 Mac 中输入 cmd
+/
或在 Windows(?) 中输入 ctrl
+/
运行将您的 *.rb
文件放入 Shoes.app
对我来说,出现的错误是:
Connection refused - connect(2) for "::1" port 3000