Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6243915
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T12:13:44+00:00 2026-05-24T12:13:44+00:00

I found an API for which I want to play as I am free.

  • 0

I found an API for which I want to play as I am free. I want to ask if I want to develop Android app using the API and the API is HTTP protocol based (RESTful), how can I use the HTTPClient object to do so?

I have a general request info.

HEAD /authenticate/ HTTP/1.1
Host: my.api.com
Date: Thu, 17 Jul 2008 14:52:54 GMT
X-SE-Client: some-value
X-SE-Accept: xml
X-SE-Auth: 90a6d325e982f764f86a7e248edf6a660d4ee833

The response of the above would be if success.

HTTP/1.1 200 OK
Date: Thu, 17 Jul 2008 14:52:55 GMT
Server: MyApi
Content-Length: 795
Connection: close
Content-Type: text/xml

I know how to use HTTPClient to send HTTP requests but does it add extra headers and other unnecessary stuff to the request? How can I see the request made by HTTPClient object? I want to simply request passing text like in telnet.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T12:13:45+00:00Added an answer on May 24, 2026 at 12:13 pm

    You should be able to use HttpClient in Android to do what you need. I just finished the first part of an integration of Android with an ASP.NET MVC 3 site and I must say – it was quite painless. I use Json as my data exchange format.

    You can view exactly what the header looks like by setting a debug point after building your request. Here is some sample code (please remember it is just sample code – not a full implementation).

    This class is called by a separate thread than the UI thread:

    public class RemoteDBAdapter {
    
    
        public String register(String email, String password) throws Exception
        {
            RestClient c = new RestClient("http://myurl/Account/Register");
            c.AddHeader("Accept", "application/json");
            c.AddHeader("Content-type", "application/json");
            c.AddParam("Email", email);
            c.AddParam("Password", password);
    
            c.Execute(RequestMethod.POST);
    
            JSONObject key = new JSONObject(c.getResponse());
    
            return key.getString("status");
    
    
        }
    
    }
    

    Use this class to build your request and execute it:

    public class RestClient {
    
        public enum RequestMethod {
            GET,
            POST
        }
    
        private ArrayList <NameValuePair> params;
        private ArrayList <NameValuePair> headers;
    
        private String url;
    
        private int responseCode;
        private String message;
    
        private String response;
    
        public String getResponse() {
            return response;
        }
    
        public String getErrorMessage() {
            return message;
        }
    
        public int getResponseCode() {
            return responseCode;
        }
    
        public RestClient(String url)
        {
            this.url = url;
            params = new ArrayList<NameValuePair>();
            headers = new ArrayList<NameValuePair>();
        }
    
        public void AddParam(String name, String value)
        {
            params.add(new BasicNameValuePair(name, value));
        }
    
        public void AddHeader(String name, String value)
        {
            headers.add(new BasicNameValuePair(name, value));
        }
    
        public void Execute(RequestMethod method) throws Exception
        {
            switch(method) {
                case GET:
                {
                    //add parameters
                    String combinedParams = "";
                    if(!params.isEmpty()){
                        combinedParams += "?";
                        for(NameValuePair p : params)
                        {
                            String paramString = p.getName() + "=" + URLEncoder.encode(p.getValue(),"UTF-8");
                            if(combinedParams.length() > 1)
                            {
                                combinedParams  +=  "&" + paramString;
                            }
                            else
                            {
                                combinedParams += paramString;
                            }
                        }
                    }
    
                    HttpGet request = new HttpGet(url + combinedParams);
    
                    //add headers
                    for(NameValuePair h : headers)
                    {
                        request.addHeader(h.getName(), h.getValue());
                    }
    
                    executeRequest(request, url);
                    break;
                }
                case POST:
                {
                    HttpPost request = new HttpPost(url);
    
                    //add headers
                    for(NameValuePair h : headers)
                    {
                        request.addHeader(h.getName(), h.getValue());
                    }
                    JSONObject jo = new JSONObject();
    
    
                    if(!params.isEmpty()){
                        for (int i = 0; i < params.size();i++)
                        {
                            jo.put(params.get(i).getName(),params.get(i).getValue());
    
    
                        }
                        StringEntity se = new StringEntity(jo.toString());
                        se.setContentType("text/xml"); 
                        se.setContentEncoding( new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
    
                        request.setEntity(se);
                        //request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
                    }
    
                    executeRequest(request, url);
                    break;
                }
            }
        }
    
        private void executeRequest(HttpUriRequest request, String url)
        {
            //HttpClient client = new DefaultHttpClient();
            HttpClient client = HttpClientFactory.getThreadSafeClient();
    
            HttpResponse httpResponse;
    
            try {
                httpResponse = client.execute(request);
                responseCode = httpResponse.getStatusLine().getStatusCode();
                message = httpResponse.getStatusLine().getReasonPhrase();
    
                HttpEntity entity = httpResponse.getEntity();
    
                if (entity != null) {
    
                    InputStream instream = entity.getContent();
                    response = convertStreamToString(instream);
    
                    // Closing the input stream will trigger connection release
                    instream.close();
                }
    
            } catch (ClientProtocolException e)  {
                client.getConnectionManager().shutdown();
                e.printStackTrace();
            } catch (IOException e) {
                client.getConnectionManager().shutdown();
                e.printStackTrace();
            }
        }
    
        private static String convertStreamToString(InputStream is) {
    
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            StringBuilder sb = new StringBuilder();
    
            String line = null;
            try {
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return sb.toString();
        }
    }
    

    EDIT:

    Oh ya and the HttpClientFactory:

    // Should be thread safe
    public class HttpClientFactory {
    
                private static DefaultHttpClient client;
    
                public synchronized static DefaultHttpClient getThreadSafeClient() {
                        if (client != null)
                                return client;
                        client = new DefaultHttpClient();
                        ClientConnectionManager mgr = client.getConnectionManager();
                        HttpParams params = client.getParams();
                        client = new DefaultHttpClient(new ThreadSafeClientConnManager(params,
                                        mgr.getSchemeRegistry()), params);
                    return client;
    
                }
        }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to develop an android application which retrieving data from the Waze Live
I am building an iOS application which is using Facebook API. I found that
So Im developing a Rails app- primarily serves API which I want to lock
I want to use Rackspace API which is based on ReST. I am able
I want to start using the function first_or_create, which I found in the ActiveRecord
I want to create an Android client app for Google Documents List API, taking
I've found this page about the Twitter search API and some operators : http://search.twitter.com/operators
I found an API which gives out results in the form of a multidimensional
Hi am developing a app in which i want to send message automatically to
I want to develop an application in which i want to display restaurants nearby

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.