如何在ruby Shoes GUI应用程序中创建简单的http请求?

时间:2015-08-05 20:27:45

标签: ruby http shoes

我正在尝试向运行在localhost:3000的本地rails应用程序发出一个简单的http请求。我的应用程序的代码非常处于原型阶段,因为我只是在尝试其他任何事情之前尝试获取原始功能。

rails app在解析之前只返回看起来像这样的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块中无济于事。执行时,这会创建它应该创建的所有元素,但是当我单击按钮时没有任何反应。

我知道你不应该对红宝石鞋做任何实用的事情,但无论如何我都在尝试。谢谢你的时间

1 个答案:

答案 0 :(得分:2)

当我尝试运行您的代码时,我遇到的问题是,该应用无法使用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 + Connection refused - connect(2) for "::1" port 3000 。应用程序

对我来说,出现的错误是:

vagrant box add laravel/homestead