ruby-on-rails - 尝试通过 Rails 访问 Basecamp API

标签 ruby-on-rails ruby ruby-on-rails-3 basecamp

我试图通过 Rails 访问 Basecamp API,但它以 SocketError 响应。我的代码是这样的:

require 'rubygems'
require 'net/https'
http = Net::HTTP.new('https://webonise.basecamphq.com')
http.use_ssl = true
http.start do |http|
  req = Net::HTTP::GET.new('/projects.xml')
  req.basic_auth 'username' , 'password'
  resp, data = http.request(req)
end

响应是:

SocketError: getaddrinfo: Name or service not known 

最佳答案

Net::HTTP.new 将主机名而非 URI 作为其第一个参数。尝试先调用 URI.parse 将 URI 分解为您想要的部分:

require 'rubygems'
require 'net/http'
uri = URI.parse("https://webonise.basecamphq.com/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Get.new(uri.request_uri)
req.basic_auth 'username', 'password'
resp = http.request(req)
body = resp.body

您还必须从 body 方法的响应中获取正文。

关于ruby-on-rails - 尝试通过 Rails 访问 Basecamp API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790198/

相关文章:

ruby-on-rails - 您将如何处理 HAML/ERB 混合团队?

ruby-on-rails - 使用隐式模型从 Controller 渲染 Rails 单元

ruby-on-rails - 为什么我的 add_foreign_key on_delete : :cascade designations not being transferred to the schema

Ruby 堆栈级别太深异常不是来自递归无限循环

mysql - 在 Rails3、 Octopus 复制 gem 查询错误期间丢失与 MySQL 服务器的连接

ruby-on-rails - 无方法错误 : undefined method `has_attached_file'

ruby-on-rails - 如何更新单击按钮后呈现的部分?

javascript - RJS:Ajaxified select_tag

ruby-on-rails - 定义定时器方法 Controller rails

ruby-on-rails - 如何使用 has_and_belongs_to_many 关系为数据库添加种子