我正在尝试用Ruby编写一些脚本来与Guild Wars 2的API(https://api.guildwars2.com/v2)进行交互
在该页面的底部有以下信息:
需要身份验证的API需要传递属于的API密钥 要访问的帐户。 API密钥必须具有适当的权限 与之关联(/ v2 / tokeninfo可用于检查密钥权限)。按键 可以在ArenaNet帐户网站上生成。
可以通过查询参数或HTTP标头传递密钥。我们的服务器 不支持预先发出的CORS请求,因此如果您的应用程序正在运行 在用户的浏览器中,您需要使用查询参数。
要通过查询参数传递,请在您的请求中添加“?access_token =”。
要通过HTTP标头传递,请包含“身份验证:承载(API密钥)”。
我现在正在使用的代码如下:
class Gw2
attr_reader :response, :uri, :http
def initialize
@uri = URI.parse('https://api.guildwars2.com/v2')
@http = Net::HTTP.new(@uri.host, @uri.port)
@http.use_ssl = true
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end
def wallet
path ="/v2/account/wallet"
@response = @http.get(path).body
end
end
我不知道如何设置它。
答案 0 :(得分:0)
这是一个小例子:
require 'net/http'
require 'uri'
url = URI.parse('http://some.url')
req = Net::HTTP::Get.new(url.path)
req.add_field('X-Forwarded-For', '0.0.0.0')
# For content type, you could also use content_type=(type, params={})
# req.set_form_data({'query' => 'search me'})
# req['X-Forwarded-For'] = '0.0.0.0'
res = Net::HTTP.new(url.host, url.port).start do |http|
http.request(req)
end
puts res.body