2016-01-26 6 views
10

Próbowałem upvote pytanie stackoverflow z api wymiany stosu i nie powiodło się. Wiele próbowałem, ale nie udało mi się.Konsumpcja zużywających się interfejsów API

URL:

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

Docs

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

Json danych:

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

Próbowałem przez skrzypek z następującymi parametrami. Metoda:

I metoda POST. Ale nie udało mi się uzyskać następującego komunikatu o błędzie.

error_id=400 
error_message=site is required 
error_name=bad_parameter 

Ale udostępniłem witrynę w moim obiekcie JSON. Tak więc każda pomoc będzie bardzo ważna.

Aktualizacja

Podczas próby to w Fiddler mam następujący komunikat.

enter image description here

+1

Jakieś kody do wypróbowania? sprawdź to również: http://stackoverflow.com/a/29945301/4409113 – Mohsen

+0

Czy udało ci się spełnić jakąś inną prośbę? – Oleksandr

+0

@Alexandr no. jeszcze nie dostałem odpowiedzi. – Gunaseelan

Odpowiedz

1

Musisz wysłać parametry jako argumenty URL, a nie jako surowego JSON na ciele żądania. W celu przeprowadzenia upvote, wyślij następujące POST request:

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

Otrzymuję następujący błąd podczas wypróbowania tej metody POST oczekuje, że wszystkie parametry zostaną przesłane jako formularz, a nie w ciągu zapytania " – Gunaseelan

+0

Zaktualizowałem odpowiedź. – imriqwe

+0

Mówi nie na ciągu zapytania, Ponownie podajesz wszystkie parametry w ciągu zapytania. – Gunaseelan

0

Twój Json dane należy wysłać w ten sposób, że nie pozwala następna linia

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

nie ... ten sam błąd co zrzut ekranu obrazu. – Gunaseelan

4

trzeba wysłać je dane formularzy z JavaScript byłoby tak:

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); 

Oto przewodnik to zrobić z Androidem: http://www.onlymobilepro.com/2013/03/16/submitting-android-form-data-via-post-method/

+0

Czy możesz podać przykład, który powinien działać w skrzypku. Ponieważ chcę potwierdzić, że interfejs API działa idealnie, przed uruchomieniem kodu. – Gunaseelan

Powiązane problemy