【问题标题】:Using NetHTTP within Rails to hit Rails在 Rails 中使用 NetHTTP 访问 Rails
【发布时间】:2013-06-02 22:37:22
【问题描述】:

我们有一个非常独特的用例,我们希望 Rails 控制器使用 Net::HTTP 访问 Rails 应用程序中的路由。这可以做到吗?我目前在尝试这样做时收到超时。当前代码在 uri 是单独的 Rails 应用程序时有效,但在 uri 属于应用程序本身时无效。以下是当前控制器操作的要点:

def export_data
  uri = URI("http://localhost:3000")
  @data = JSON.parse( Net::HTTP.get(uri) )

  respond_to do |format|
    ...
  end
end

忘记我们为什么要这样做。为什么这不起作用?是否可以进行修改以使其正常工作?提前致谢!

【问题讨论】:

  • 我建议您直接调用目标 URL 后面的方法,因为您已经在服务器上。
  • 这实际上是一个我们不想这样做的独特案例,因为我们计划在不久的将来将其分离到一个单独的应用程序中。

标签: ruby-on-rails ruby net-http


【解决方案1】:

它不起作用,因为您没有使用多线程服务器。您的请求正在进入并阻止服务器,直到它完成。在此期间,您正在向未处理的本地主机发出请求。

简单的解决方案?试试彪马。其他简单的解决方案,启动两个 rails 实例,连接到第二个实例。

【讨论】:

  • 啊!非常感谢!因此,澄清一下:由于 Thin(我们正在使用的 localhost 服务器)正在发送请求,因此它也无法接收请求。对吗?
  • 没错。如果你启动一个 localhost:3001,你可以连接到它。 (或拥有多线程服务器)
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-19
  • 2011-03-16
  • 2014-06-13
  • 1970-01-01
相关资源
最近更新 更多