2012-11-15 8 views
5

Znalazłem tak wiele próbek dla żądania REST API, ale wszystkie razem są mylące, czy ktoś może wytłumaczyć mi sposób korzystania z żądań http.Android Rest Client

Moje żądanie, chcę uzyskać dane z interfejsu API REST, podając nazwę użytkownika, klucz pwd i klucz.

Co Użyłem był

 HttpClient client = new DefaultHttpClient(); 
     HttpPost post = new HttpPost("REST API url"); 
     post.setHeader("Content-type", "application/json"); 

     JSONObject obj = new JSONObject(); 
     obj.put("username", "un"); 
     obj.put("pwd", "password"); 
     obj.put("key","123456"); 

     post.setEntity(new StringEntity(obj.toString(), "UTF-8")); 
     HttpResponse response = client.execute(post); 

Ale odpowiedź jest zawsze zerowa, a te działają bez zarzutu, gdy testowane narzędzie przeglądarki zamieszczając te same data.Is niektóre rzeczy nie tak z moim podejściem? proszę, zasugeruj mi właściwą drogę. Dziękuję

Odpowiedz

2

I rzeczą, jaką należy spróbować,

HttpContext localContext = new BasicHttpContext(); 
HttpClient client = new DefaultHttpClient(); 
HttpPost post = new HttpPost("REST API url"); 
post.setHeader("Content-type", "application/json"); 

JSONObject obj = new JSONObject(); 
obj.put("username", "un"); 
obj.put("pwd", "password"); 
obj.put("key","123456"); 

post.setEntity(new StringEntity(obj.toString(), "UTF-8")); 
HttpResponse response = client.execute(post,localContext); 

nadzieję, że to pomoże.

+0

Nie Próbowałem tego, wciąż ten sam problem. Nie mogę uzyskać danych odpowiedzi. Czy ktoś może mi pomóc? Czy należy używać UrlConnection zamiast klas Http? – user470169

4

Prawdopodobnie zapomniałeś dodać uprawnienia do internetu do pliku manifestu. Dodaj następujący wiersz.

<uses-permission android:name="android.permission.INTERNET" /> 
6

(1) Google I/O video session for developing REST clients

(2) szukaj w android blogu deweloperskim

(3) https://github.com/darko1002001/android-rest-client

Proszę spróbować później zamieścić swoje pytanie, mogę udostępnić fragment kodu z mój klient odpoczynku opracował na podstawie (1) & (2)

Nie używaj chmury do Device Messaging, zamiast tego wykorzystuj najnowsze podejście do chmury z tworzeniem aplikacji andrid.

Pojawiła się nowa biblioteka o nazwie Volley, która wygląda lepiej niż AsyncTask. Powinien być przydatny w tworzeniu klientów RESTful.

0

Czy jest szansa, że ​​serwer oczekuje żądania GET dla tej operacji? Jeśli tak, możesz użyć HttpGet zamiast HttpPost.