2016-10-12 3 views
0

Dies ist ein Testskript, um Daten von Rovi API anzufordern, von der API selbst zur Verfügung gestellt.Anfragen - Gateway Timeout

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 

von einem anderen script importieren I die module:

from roviclient.test import AllMusicGuide 

und Erstellen einer Instanz der class innerhalb eines mood function:

def mood(): 
    test = AllMusicGuide() 
    print (test.get('[moodids=moodids]')) 

nach documentation, ist die folgende die syntax für Anfragen:

descriptor/musicmoods?apikey=apikey&sig=sig [&moodids=moodids] [&format=format] [&country=country] [&language=language] 

aber läuft das Skript ich die folgende Fehlermeldung erhalten:

unknown err <h1>Gateway Timeout</h1>:

, was falsch ist?

Antwort

0

"504, noch einmal versuchen. 502, es ging durch."

Ihr Code ist in Ordnung, dies ist ein Netzwerkproblem. "Gateway Timeout" ist eine 504. Der Zwischenhost, der Ihre Anfrage bearbeitet, konnte sie nicht abschließen. Es hat eine eigene Anfrage an einen anderen Server in Ihrem Auftrag gestellt, um Ihre Anfrage zu bearbeiten, aber diese Anfrage hat zu lange und zu lange gedauert. In der Regel ist dies auf Netzwerkstaus im Backend zurückzuführen. Wenn Sie es ein paar Mal versuchen, funktioniert es manchmal?

In jedem Fall würde ich mit Ihrem Netzwerkadministrator sprechen. Es könnte eine Reihe von Gründen dafür geben, und sie sollten in der Lage sein, Ihnen bei der Lösung zu helfen.

Verwandte Themen