Advertisement
Guest User

RestClient

a guest
Aug 10th, 2011
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.77 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import java.net.URLEncoder;
  6. import java.util.ArrayList;
  7. import org.apache.http.HttpEntity;
  8. import org.apache.http.HttpResponse;
  9. import org.apache.http.NameValuePair;
  10. import org.apache.http.client.ClientProtocolException;
  11. import org.apache.http.client.HttpClient;
  12. import org.apache.http.client.entity.UrlEncodedFormEntity;
  13. import org.apache.http.client.methods.HttpDelete;
  14. import org.apache.http.client.methods.HttpGet;
  15. import org.apache.http.client.methods.HttpPost;
  16. import org.apache.http.client.methods.HttpPut;
  17. import org.apache.http.client.methods.HttpUriRequest;
  18. import org.apache.http.impl.client.DefaultHttpClient;
  19. import org.apache.http.message.BasicNameValuePair;
  20. import org.apache.http.protocol.HTTP;
  21.  
  22. /**
  23.  * Simple REST Client, able to do GET, POST, PUT, DELETE
  24.  * HTTP Request
  25.  */
  26. public class RestClient {
  27.  
  28.     private ArrayList<NameValuePair> params;
  29.     private ArrayList<NameValuePair> headers;
  30.     private String url;
  31.     private int responseCode;
  32.     private String message;
  33.     private String response;
  34.    
  35.     private HttpClient client = new DefaultHttpClient();
  36.    
  37.     public enum RequestMethod {
  38.         GET,
  39.         POST,
  40.         PUT,
  41.         DELETE
  42.     }
  43.  
  44.     public String getResponse() {
  45.         return response;
  46.     }
  47.  
  48.     public String getErrorMessage() {
  49.         return message;
  50.     }
  51.  
  52.     public int getResponseCode() {
  53.         return responseCode;
  54.     }
  55.  
  56.     public RestClient(String url) {
  57.         this.url = url;
  58.         params = new ArrayList<NameValuePair>();
  59.         headers = new ArrayList<NameValuePair>();
  60.     }
  61.    
  62.     public RestClient(){
  63.         params = new ArrayList<NameValuePair>();
  64.         headers = new ArrayList<NameValuePair>();
  65.     }
  66.  
  67.     public void AddParam(String name, String value) {
  68.         params.add(new BasicNameValuePair(name, value));
  69.     }
  70.  
  71.     public void AddHeader(String name, String value) {
  72.         headers.add(new BasicNameValuePair(name, value));
  73.     }
  74.    
  75.     public void setParams(ArrayList<NameValuePair> params){
  76.         this.params = params;
  77.     }
  78.    
  79.     public void setUrl(String url){
  80.         this.url = url;
  81.     }
  82.  
  83.     public void Execute(RequestMethod method) throws Exception {
  84.         switch (method) {
  85.             case GET: {
  86.                 //add parameters
  87.                 String combinedParams = "";
  88.                 if (!params.isEmpty()) {
  89.                     combinedParams += "?";
  90.                     for (NameValuePair p : params) {
  91.                         String paramString = p.getName() + "=" + URLEncoder.encode(p.getValue(),"UTF_8");
  92.                         if (combinedParams.length() > 1) {
  93.                             combinedParams += "&" + paramString;
  94.                         } else {
  95.                             combinedParams += paramString;
  96.                         }
  97.                     }
  98.                 }
  99.                 HttpGet request = new HttpGet(url + combinedParams);
  100.  
  101.                 //add headers
  102.                 for (NameValuePair h : headers) {
  103.                     request.addHeader(h.getName(), h.getValue());
  104.                 }
  105.  
  106.                 executeRequest(request, url);
  107.                 break;
  108.             }
  109.             case POST: {
  110.                 HttpPost request = new HttpPost(url);
  111.  
  112.                 //add headers
  113.                 for (NameValuePair h : headers) {
  114.                     request.addHeader(h.getName(), h.getValue());
  115.                 }
  116.  
  117.                 if (!params.isEmpty()) {
  118.                     request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
  119.                 }
  120.  
  121.                 executeRequest(request, url);
  122.                 break;
  123.             }
  124.             case PUT: {
  125.                 HttpPut request = new HttpPut(url);
  126.                 executeRequest(request, url);
  127.                 break;
  128.             }
  129.             case DELETE: {
  130.                 HttpDelete request = new HttpDelete(url);
  131.                 executeRequest(request, url);
  132.                 break;
  133.             }
  134.                
  135.         }
  136.     }
  137.  
  138.     private void executeRequest(HttpUriRequest request, String url) {
  139.  
  140.         HttpResponse httpResponse;
  141.         try {
  142.             httpResponse = client.execute(request);
  143.             responseCode = httpResponse.getStatusLine().getStatusCode();
  144.             message = httpResponse.getStatusLine().getReasonPhrase();
  145.  
  146.             HttpEntity entity = httpResponse.getEntity();
  147.  
  148.             if (entity != null) {
  149.  
  150.                 InputStream instream = entity.getContent();
  151.                 response = convertStreamToString(instream);
  152.                
  153.                 // Closing the input stream will trigger connection release
  154.                 instream.close();
  155.             }
  156.  
  157.         } catch (ClientProtocolException e) {
  158.             client.getConnectionManager().shutdown();
  159.             e.printStackTrace();
  160.         } catch (IOException e) {
  161.             client.getConnectionManager().shutdown();
  162.             e.printStackTrace();
  163.         }
  164.     }
  165.    
  166.     private static String convertStreamToString(InputStream is) {
  167.  
  168.         BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  169.         StringBuilder sb = new StringBuilder();
  170.  
  171.         String line = null;
  172.         try {
  173.             while ((line = reader.readLine()) != null) {
  174.                 android.util.Log.d(Properties.DEBUG_TAG, line);
  175.                 sb.append((line + "\n"));
  176.             }
  177.         } catch (IOException e) {
  178.             e.printStackTrace();
  179.         } finally {
  180.             try {
  181.                 is.close();
  182.             } catch (IOException e) {
  183.                 e.printStackTrace();
  184.             }
  185.         }
  186.         return sb.toString();
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement