我似乎无法弄清楚如何对 URI 进行 API 调用,例如:
http://elophant.com/api/v1/na/getSummonerNames?summonerIds=7428,26670961,12468&key=APIKey
其中 SummonerIds 是游戏中玩家的 ID,key 是访问 API 的 API 密钥。
当我在浏览器中运行它时,它会返回(当然是使用实际的 API 密钥):
["Phreak","Test","OranGe"]
当我运行时,尝试通过执行以下操作在我的 Rails 应用程序的主控制器中访问它:
require 'net/http'
class MainController < ApplicationController
def index
end
def player
@player = params[:player]
url = URI.parse('http://elophant.com/api/v1/na/getSummonerNames?summonerIds=' + @player + '&key=APIKey')
req = Net::HTTP::Get.new(url.path)
res = Net::HTTP.start(url.host, url.port) {|http|
http.request(req)
}
@b = res.body
end
end
(如果它说“&key=APIKey”,我会用实际的 API 密钥替换 APIKey。)
然后在我的 player.html.erb 中打印出@b:
<%= @b %>
它返回:
v1 getSummonerNames
如果我不提供 API 密钥,这与我在浏览器中得到的响应完全相同,但我确实在代码中的 URL 中提供了 API 密钥。
所以我的问题是,如何让浏览器使用 API 密钥来获得响应?
谢谢,
亚历克斯·D。