我正在尝试使用提供的带有 Ruby 2.0.0 和 Rails 4.0.0 的 API 从 imgur 中提取图像。我尝试以 Ruby 2.0.0 文档中列出的各种方式构建 http 请求,但无济于事。
这是代码:
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
whereimg_id
和my_client_id
只是用适当的值硬编码。(imgur
方法在与我网站的根 url 对应的控制器操作中调用)
这是我运行时得到的响应rails s
(所以我使用的是 localhost:3000)然后访问根 url,localhost:3000(它确实调用了调用的操作imgur
):
#<Net::HTTPBadRequest 400 Bad Request readbody=true>
#<Net::HTTPBadRequest:0x007f8a6ce0da78>
更新:
此外,这有效:
curl --header "Authorization: Client-ID my_client_id" https://api.imgur.com/3/gallery/image/7x98w9T.json
(再次,my_client_id
使用我的实际客户端 ID 进行硬编码)。现在让它在 Ruby 上工作......
有人知道这样做的正确方法吗?