2016-01-26 10 views
10

Ho provato a sviare una domanda di stackoverflow con l'API di scambio dello stack e non è riuscita. Ho provato molto ma non l'ho fatto funzionare.API di scambio pila di consumo

URL:

http://api.stackexchange.com/2.2/questions/35007869/upvote

Docs

https://api.stackexchange.com/docs/upvote-question

JSON dati:

{ 
    "key" : "my key", 
    "access_token" : "my token", 
    "site" : "stackoverflow.com", 
    "preview" : "false", 
    "filter": "default" 
} 

Ho provato il violinista con i seguenti parametri.

User-Agent: Fiddler 
Host: api.stackexchange.com 
Content-Length: 159 
Content-Type: application/json; charset=utf-8 

E POST metodo. Ma non sono riuscito con il seguente messaggio di errore.

error_id=400 
error_message=site is required 
error_name=bad_parameter 

Ma ho fornito il sito nel mio oggetto JSON. Quindi qualsiasi aiuto sarà molto apprezzabile.

Aggiornamento

Mentre provare questo in Fiddler ho ottenuto seguente messaggio.

enter image description here

+1

Qualche codice per il tentativo? controlla anche questo: http://stackoverflow.com/a/29945301/4409113 – Mohsen

+0

Hai mai avuto altre richieste? – Oleksandr

+0

@Alexandr no. non ancora ottenere la risposta. – Gunaseelan

risposta

1

È necessario inviare i parametri come argomenti URL, non come JSON crudo sul corpo della richiesta. Per eseguire un upvote, inviare la seguente richiesta POST:

http://api.stackexchange.com/2.2/questions/35007869/upvote?site=stackoverflow.com&key=YOUR_KEY&access_token=YOUR_TOKEN&preview=false&filter=default 
+0

Viene visualizzato un messaggio di errore durante il tentativo di questo 'I metodi POST si aspettano che tutti i parametri siano inviati come modulo, non sulla stringa di query' – Gunaseelan

+0

Ho aggiornato la risposta. – imriqwe

+0

Non dice sulla stringa di query, Ancora si passano tutti i parametri sulla stringa di query. – Gunaseelan

0

vostri dati JSON devono essere inviati in questo modo, non sta permettendo riga successiva

{"key":"mykey","access_token":"mytoken","site":"stackoverflow.com","preview":"false","filter":"default"} 
+0

no ... stesso errore dello screenshot dell'immagine. – Gunaseelan

4

è necessario inviare loro come dati del modulo, con JavaScript sarebbe come questo:

var request = new XMLHttpRequest(); 
request.open('POST', 'http://api.stackexchange.com/2.2/questions/35007869/upvote', true); 

var formData = new FormData(); 
formData.append('key', 'my key'); 
formData.append('access_token', 'my token'); 
formData.append('site', 'stackoverflow.com'); 
formData.append('preview', 'false'); 
formData.append('filter', 'default'); 

request.send(formData); 

Ecco una guida a che fare con Android: http://www.onlymobilepro.com/2013/03/16/submitting-android-form-data-via-post-method/

+0

Puoi pubblicare qualche esempio che dovrebbe funzionare in Fiddler. Perché voglio confermare che l'API funzioni perfettamente, prima di iniziare il codice. – Gunaseelan