Я пытаюсь извлечь изображение из imgur, используя предоставленный API с Ruby 2.0.0 и Rails 4.0.0. Я попытался создать HTTP-запрос различными способами, как указано в документах Ruby 2.0.0, безрезультатно.Получите изображение, используя imgur API в Ruby (on Rails)
Вот код:
require 'net/http'
require 'net/https'
def imgur
headers = {
"Authorization" => "Client-ID " + my_client_id
}
path = "/3/gallery/image/#{img_id}.json"
uri = URI("https://api.imgur.com"+path)
request, data = Net::HTTP::Get.new(path, headers)
response = Net::HTTP.new(uri.host, uri.port).start {|http| http.request(request) }
puts "response:"
p response
puts response
end
где img_id
и my_client_id
просто жёстко с соответствующими значениями. (imgur
метод вызывается внутри действия контроллера, соответствующего корневому URL-адресу моего сайта)
Это ответ, который я возвращаю, когда я запускаю rails s
(так что я использую localhost: 3000), а затем зайдите в корень url, localhost: 3000 (что делает вызвать действие, которое вызывает imgur
):
#<Net::HTTPBadRequest 400 Bad Request readbody=true>
#<Net::HTTPBadRequest:0x007f8a6ce0da78>
UPDATE:
Кроме того, это сработало:
curl --header "Authorization: Client-ID my_client_id" https://api.imgur.com/3/gallery/image/7x98w9T.json
(опять же, my_client_id
имеет жесткий код с моим фактическим идентификатором клиента). Теперь, чтобы заставить его работать на Ruby ...
Кто-нибудь знает правильный способ сделать это?
, если вы используете завиток или Wget с этими параметрами он работает? – rogerdpack
это сработало: $ curl --header «Авторизация: идентификатор клиента XXXXXXXXX» https://api.imgur.com/3/gallery/7x98w9T.json, где X - это мой идентификатор клиента ... идентификатор изображения imgur является одним для изображения, которое я выбрал случайно –
в комментарии выше, я намеревался напечатать api.imgur.com/3/gallery/image/7x98w9T.json (хотя я протестировал то, что я на самом деле написал в вышеупомянутом комментарии, и он также работает ...) –