这是一个测试脚本,用于请求Rovi API
本身提供的API
数据。
test.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
:
from roviclient.test import AllMusicGuide
并在class
内创建mood function
的实例:
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>:
出了什么问题?
答案 0 :(得分:0)
&#34; 504,再试一次。 502,它经历了。&#34;
您的代码很好,这是一个网络问题。 &#34;网关超时&#34;是504.处理您请求的中间主机无法完成它。它代表您向另一台服务器发出了自己的请求以便处理您的请求,但是这个请求花了太长时间并超时。通常这是因为后端的网络拥塞;如果你再试几次,它有时会起作用吗?
无论如何,我会和您的网络管理员联系。可能有多种原因,他们应该能够帮助你解决这个问题。