【问题标题】:How can I make simple http requests within a ruby Shoes GUI application?如何在 ruby​​ Shoes GUI 应用程序中发出简单的 http 请求?
【发布时间】:2015-08-05 20:27:45
【问题描述】:

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

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

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

【问题讨论】:

  • 我不太确定你在这里问什么。你能澄清一下吗?
  • 我想使用 Rails 服务器来提供 json,用于在鞋子 gui 中呈现文本。目标是能够将鞋子用作愚蠢的前端。最终,该应用程序将用于被动访问用户文件系统,因此 Web 应用程序不可行
  • 有人滥用他们的 SO 特权来投反对票
  • 好的,我明白你想要做什么。那么你的问题是什么?
  • 我不确定您是否曾经使用过Shoes,但目前还不清楚如何在应用程序中发出http 请求以便实际使用响应。也就是说,如何在 Ruby Shoes GUI 中发出 HTTP 请求,以便使用 API?

标签: ruby http shoes


【解决方案1】:

当我尝试运行您的代码时,我遇到的问题是鞋子应用无法使用 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

或者,当您在 Shoes.app 中运行 *.rb 文件时,只需在 Mac 上输入 cmd+/ 或在 Windows 中输入 ctrl+/(?)

对我来说出现的错误是:

Connection refused - connect(2) for "::1" port 3000

【讨论】:

    猜你喜欢
    • 2020-02-15
    • 2023-03-28
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2011-06-02
    相关资源
    最近更新 更多