user470169
user470169

Reputation: 119

Android Rest Client

I found so many samples for requesting a REST API, but all together are confusing, can some one please explain me a way to use http requests.

My Requirement is, I want to get data from a REST API by providing username, pwd and a key.

What I have Used was,

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

But the response is always null and these working fine when tested with browser tool by posting the same data.Is some thing wrong with my approach? please suggest me the correct way. Thank you

Upvotes: 5

Views: 16709

Answers (4)

Sree Rama
Sree Rama

Reputation: 1227

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

(2) search in android developer blog

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

Please try after that post your question, I can share code snippet from my rest client developed based on (1) & (2)

Do not use Cloud to Device Messaging, instead use the latest cloud approach with android application development.

There is new library called Volley, which looks better than AsyncTask. It should be useful in developing RESTful clients.

Upvotes: 6

Damodar Periwal
Damodar Periwal

Reputation: 409

By any chance, is the server expecting a GET request for this operation? If so, you may want to use HttpGet instead of HttpPost.

Upvotes: 0

dipu
dipu

Reputation: 1340

You probably forgot to add the internet permission to the manifest file. Add the following line.

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

Upvotes: 4

Bhavik Ambani
Bhavik Ambani

Reputation: 6657

I thing you should try this,

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

Hope this will help.

Upvotes: 2

Related Questions