ruby-on-rails - 我的 Rails Controller 中的 http 请求(使用 net http 或 RestClient)

标签 ruby-on-rails ruby ruby-on-rails-3 rest-client net-http

我在 Controller 操作中创建 http 请求时遇到问题。我使用了 net/http 和 RestClient 但我无法让它在我的本地服务器 url 上工作,即 http://localhost:3000/engine/do_process ,我总是得到 requesttimeout 但是它适用于其他有效的 url。

希望你能在这方面启发我。我做了一些研究,但找不到关于为什么会出现此超时问题的资源。

示例 Controller 代码:

require 'rest_client'

class LgController < ApplicationController
  def get_lgjson

     response =  RestClient.get("http://localhost:3000/engine/do_process_lg")
     @generated_json = response.to_str

  end
end

最佳答案

我今天也遇到了这个问题,完全是在相同的上下文中:使用 Ruby RestClient在 Controller 内发出 HTTP 请求。它在另一个项目中早些时候使用 OpenURI 工作没有什么问题。这是令人惊讶的,因为 Ruby 的 RestClient 和 OpenURI 这两个 http 库,use the same library Net::HTTP .

不同之处在于 URL。我们可以连接到 Controller 中的外部 URL,但不能连接到本地主机。问题似乎是与本地主机的重复连接。已经打开了一个到本地主机的连接,我们正在尝试打开第二个。这在像 Thin 这样的单线程 Web 服务器中似乎不起作用。例如。多线程 Web 服务器,例如 Puma可以提供帮助。

关于ruby-on-rails - 我的 Rails Controller 中的 http 请求(使用 net http 或 RestClient),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682678/

相关文章:

ruby-on-rails - 如何通过 id 缓存查找对象

ruby-on-rails - 如果有的话,rspec 相对于 test::unit 的主要优势是什么?

php - 正则表达式:如何匹配转义的双引号字符串?

ruby-on-rails - 未初始化常量 > ActionCable::Server::Configuration::ApplicationCable

ruby - 让它更简单,这样它会更快

ruby-on-rails - Ruby on Rails 3 简单的分组和计数

ruby-on-rails - 如何获取一个对象的子对象的所有子对象?

ruby-on-rails - Rails 在 Nginx 和 Unicorn 中使用 Websockets?

ruby-on-rails-3 - 错误——: uninitialized constant Airbrake (NameError)

mysql - 加入有条件的两个表 - ruby​​ on rails