这是一个从Rovi API
请求数据的测试脚本,由API
自己提供。在
测试.py
import requests
import time
import hashlib
import urllib
class AllMusicGuide(object):
api_url = 'http://api.rovicorp.com/data/v1.1/descriptor/musicmoods'
key = 'my key'
secret = 'secret'
def _sig(self):
timestamp = int(time.time())
m = hashlib.md5()
m.update(self.key)
m.update(self.secret)
m.update(str(timestamp))
return m.hexdigest()
def get(self, resource, params=None):
"""Take a dict of params, and return what we get from the api"""
if not params:
params = {}
params = urllib.urlencode(params)
sig = self._sig()
url = "%s/%s?apikey=%s&sig=%s&%s" % (self.api_url, resource, self.key, sig, params)
resp = requests.get(url)
if resp.status_code != 200:
# THROW APPROPRIATE ERROR
print ('unknown err')
return resp.content
从另一个script
导入module
:
并在mood function
内创建class
的实例:
def mood():
test = AllMusicGuide()
print (test.get('[moodids=moodids]'))
根据documentation,以下是请求的syntax
:
descriptor/musicmoods?apikey=apikey&sig=sig [&moodids=moodids] [&format=format] [&country=country] [&language=language]
但是运行脚本时,我得到了以下错误:
unknown err
<h1>Gateway Timeout</h1>:
怎么了?在
“504,再试一次。502,它通过了。”
代码正常,这是网络问题。”网关超时”是504。处理您的请求的中间主机无法完成请求。它代表您向另一台服务器发出了自己的请求,以处理您的请求,但此请求花费了太长时间,并且超时。通常这是因为后端的网络拥塞;如果您再尝试几次,有时是否有效?在
无论如何,我会和你的网络管理员谈谈。这可能有很多原因,他们应该能够帮助你解决它。在
相关问题 更多 >
编程相关推荐