连接到API,获得409

时间:2017-06-14 18:46:24

标签: python api request

我对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文档,这意味着我有错误的时间戳,公钥或私钥。我花了好几个小时试图发现什么是错的,我需要一些帮助。

This is a direct link to API documentation

1 个答案:

答案 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))