我对API完全陌生,而且我很难连接到Marvel API。文档说我的连接链接应该是这样的:
https://gateway.marvel.com:443/v1/public/characters?nameStartsWith=Spider&apikey=XXXXX&hash=XXXXXX
hash是一个md5字符串,包含时间戳(或其他字符串,可以更改每个请求,私钥和公钥)
我在他们的网站上注册并且我有我的钥匙,这就是我试图打电话找到姓名以#34; Spider"
开头的人物创建每个请求更改字符串:
t ='{:%H:%M:%S}'.format(datetime.datetime.now())
t = t.replace(":", "")
输出:" 213944"
散列:
m = hashlib.md5(t+private+public).hexdigest()
包我试图使用:
pack = 'https://gateway.marvel.com:443/v1/public/characters?nameStartsWith=Spider&apikey=<ACTUAL-API-KEY>&hash=' + m
请求打印回复:
response = requests.get(pack)
print(response)
我一直回来Response[409]
,根据API文档,这意味着我有错误的时间戳,公钥或私钥。我花了好几个小时试图发现什么是错的,我需要一些帮助。
答案 0 :(得分:0)
根据文档,您缺少ts
参数。将t
变量添加为ts
参数。
pack = 'https://gateway.marvel.com:443/v1/public/characters?nameStartsWith=Spider&apikey=<ACTUAL-API-KEY>&hash=' + m + '&ts=' +t
此外,文档指出ts
要逐个请求更改。请考虑改为使用t=str(int(time.time()*1000))
。