Попытка получить доступ к API Basecamp через Rails - PullRequest
2 голосов
/ 09 января 2012

Я пытаюсь получить доступ к API Basecamp через Rails, но он отвечает 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 

1 Ответ

2 голосов
/ 09 января 2012

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.

...