2010-12-06 52 views
2

J'essaie d'écrire un script python pour faire une requête sur Last.fm, mais je reçois toujours une erreur de méthode non valide.Last.fm api méthode invalide

Je ne veux pas de liens vers des librairies python de last.fm pré-écrites, j'essaye de le faire comme un projet de type «test what you know». Merci d'avance!

import urllib 
import httplib 

params = urllib.urlencode({'method' : 'artist.getsimilar', 
       'artist' : 'band', 
       'limit' : '5', 
       'api_key' : #API key goes here}) 

header = {"user-agent" : "myapp/1.0"} 

lastfm = httplib.HTTPConnection("ws.audioscrobbler.com") 

lastfm.request("POST","/2.0/?",params,header) 

response = lastfm.getresponse() 
print response.read() 
+0

Quelle est l'erreur? – user225312

Répondre

2

Il vous manque Content-Type pour votre demande: "application/x-www-form-urlencoded". Cela fonctionne:

import urllib 
import httplib 

params = urllib.urlencode({'method' : 'artist.getsimilar', 
       'artist' : 'band', 
       'limit' : '5', 
       'api_key' : '#API key goes here'}) 

header = {"user-agent" : "myapp/1.0", 
      "Content-type": "application/x-www-form-urlencoded"} 

lastfm = httplib.HTTPConnection("ws.audioscrobbler.com") 

lastfm.request("POST","/2.0/?",params,header) 

response = lastfm.getresponse() 
print response.read() 
+0

pouah, merci beaucoup –

0

la méthode API Last.fm artist.getSimilar ne nécessite pas le POST, il peut être fait avec un GET.

Seules les méthodes API qui modifient les données requièrent la méthode POST.