Dopo aver cercato per un po ', ho trovato le seguenti soluzioni per una chiamata API che richiede il metodo Delete.Python Delete Request for a api resto (su gae)
Prima prova: (biblioteca httplib)
url = '/v1/users/'+ spotify_user_id +'/playlists/'+ playlist_id +'/tracks'
data = json.dumps({"tracks": [{ "uri" : track_uri }]})
headers = {
'Authorization' : 'Bearer ' + access_token,
'Content-Type' : 'application/json'
}
conn = httplib.HTTPSConnection('api.spotify.com')
conn.request('DELETE', url , data, headers)
resp = conn.getresponse()
content = resp.read()
return json.loads(content)
Ciò restituisce:
{u'error ': {u'status': 400, u'message ': u'Empty JSON corpo '}}
secondo tentativo:. (biblioteca urllib2)
url = 'https://api.spotify.com/v1/users/'+ spotify_user_id +'/playlists/'+ playlist_id +'/tracks'
data = json.dumps({"tracks": [{ "uri" : track_uri }]})
headers = {
'Authorization' : 'Bearer ' + access_token,
'Content-Type' : 'application/json'
}
opener = urllib2.build_opener(urllib2.HTTPHandler)
req = urllib2.Request(url, data, headers)
req.get_method = lambda: 'DELETE'
try:
response = opener.open(req).read()
return response
except urllib2.HTTPError as e:
return e
Ciò restituisce:
HTTP 400 Richiesta
ho altre funzioni in cui il JSON sta lavorando, quindi credo che il problema sia con il metodo DELETE ma non riesco a farlo funzionare.
Oltre a ciò, la webapp è in esecuzione su google app engine quindi non posso installare i pacchetti quindi vorrei rimanere nei librerie preinstallati.
Qualcuno ha un buon modo per fare una richiesta di cancellazione su GAE? (Devo inviare sia dati che intestazioni)
L'API è spotify: developer.spotify.com/web-api/ e sto tentando di eliminare una traccia da una playlist.
Grazie mille per lo sforzo di porre la tua domanda. Hai rinnovato la mia fiducia in SO, almeno per un giorno. –
Il tuo secondo esempio sembra strano Hai considerato di provare solo urlfetch: supporta il metodo DELETE. https://cloud.google.com/appengine/docs/python/urlfetch/fetchfunction –
Ho provato a utilizzare urlfetch e ottengo questa risposta: {u'error ': {u'status': 400, u 'message': u'Empty JSON body. '}} – NBajanca