我正在尝试从Fortnite tracker api获取用户统计信息。
我有一个api密钥,并使用正确的url作为
indicated in the documentation
模板url:
https://api.fortnitetracker.com/v1/profile/{platform}/{epic-nickname}
所需url:
https://api.fortnitetracker.com/v1/profile/pc/xantium0
如果我在浏览器中使用此链接
{"message":"No API key found in request"}
(因为我没有传递API密钥)所以链接应该是正确的。另外,如果我没有用urllib传递api键,那么我仍然会得到一个403错误。
我已经检查了如何在请求中传递头:
How do I set headers using python's urllib?
到目前为止,这个代码是:
import urllib.request as ur
request = ur.Request('https://api.fortnitetracker.com/v1/profile/pc/xantium0', headers={'TRN-Api-Key' : 'xxx'})
response = ur.urlopen(request)
print(response.read())
运行时,我得到以下错误:
urllib.error.HTTPError: HTTP Error 403: Forbidden
403签出为:
http403是由HTTP服务器传送给客户机的标准HTTP状态码,用于指示服务器理解请求,但不会实现请求。有许多子状态错误代码提供了用403状态代码响应的更具体原因。
https://en.wikipedia.org/wiki/HTTP_403
如果我不在头中传递api键,则响应是相同的。
我只能想到三个原因这个代码不起作用:
-
我传递了错误的标题名称(即,它不是
TRN-Api-Key
)
-
我的代码是不正确的,我实际上没有传递头到服务器
-
我被禁了
我的问题是我认为我的代码
是
对的:
从
documentation
:
urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
我通过了考试
url
我已经通过了考试
headers
(不与
data
辩论)。api文档还提到它应该在头文件中传递。
我也很确定我需要使用
TRN Api密钥
如api文档所示:
TRN-Api-Key: xxx
也在
this question
(使用Ruby):
header = {
key: "TRN-Api-Key: Somelong-api-key-here"
}
或者我已经被禁止(这是可能的,虽然我15分钟前就拿到了钥匙)有没有办法检查?是否返回此错误?
是什么阻止我获取用户统计数据?