Ruby on rails 使用PUT方法的查询服务器

Ruby on rails 使用PUT方法的查询服务器,ruby-on-rails,ruby,http,Ruby On Rails,Ruby,Http,我将替换我的命令行 `curl -XPUT 'host:port/url' -d '{"val": "some_json"}'̀ 通过Rails命令,并获得结果 像这样的地方: response = call('put', 'host:port/url', '{"val" : "some_json"}') 在Rails或一些gem中是否有任何预定义的方法来实现这一点? 我知道HTTP的命令get,但我会使用“PUT”方法 Net::HTTP.get(URI.parse('host:port

我将替换我的命令行

`curl -XPUT 'host:port/url' -d '{"val": "some_json"}'̀ 
通过Rails命令,并获得结果

像这样的地方:

response = call('put', 'host:port/url', '{"val" : "some_json"}')
在Rails或一些gem中是否有任何预定义的方法来实现这一点? 我知道HTTP的命令
get
,但我会使用“PUT”方法

Net::HTTP.get(URI.parse('host:port/url'))
感谢您的回复

#get
只是整个代码的一个简单快捷方式(
Net::HTTP
Ruby库往往非常冗长)。然而

另一种选择是使用HTTP客户机作为包装器。最常见的选择是和


作为旁注,请记住Rails是一个框架,而不是一种编程语言。您的问题是如何在Ruby而不是Rails中执行HTTP PUT请求。理解差异很重要。

您可以使用发送任何标准http请求

下面是一种方法,您可以使用任何有效的http方法(带或不带参数)连接到任何url(http/https)

def universal_connector(api_url, api_parameters={}, method="Get")
  # Do raise Error, if url is invalid and Method is invalid

  uri = URI(api_url)
  req = eval("Net::HTTP::#{method.capitalize}.new('#{uri}')")
  req.set_form_data(api_parameters)                                                                                                    
  Net::HTTP.start(uri.host, uri.port,:use_ssl => uri.scheme == 'https') do |http|
   response = http.request(req)
     return response.body
  end
end
也有许多可供选择的方案。明确地另外,在做出选择之前。

您是否尝试过这样做?
def universal_connector(api_url, api_parameters={}, method="Get")
  # Do raise Error, if url is invalid and Method is invalid

  uri = URI(api_url)
  req = eval("Net::HTTP::#{method.capitalize}.new('#{uri}')")
  req.set_form_data(api_parameters)                                                                                                    
  Net::HTTP.start(uri.host, uri.port,:use_ssl => uri.scheme == 'https') do |http|
   response = http.request(req)
     return response.body
  end
end