package com.milagaia.helper; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.conn.ConnectTimeoutException; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicHeader; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.protocol.HTTP; public class HttpHelper { protected static final String UTF8 = "UTF-8"; protected static final String CONTENT_TYPE = "application/json; charset=utf-8"; public InputStream Post(String url, String content, int timeoutMillis) throws ConnectTimeoutException, UnsupportedEncodingException, ClientProtocolException, IOException { InputStream result = null; DefaultHttpClient httpClient = buildHttpClient(timeoutMillis); HttpUriRequest req = buildPost(url, content); HttpResponse httpResponse = httpClient.execute(req); HttpEntity httpEntity = httpResponse.getEntity(); result = httpEntity.getContent(); return result; } public boolean Put(String url, String content, int timeoutMillis) throws ConnectTimeoutException, UnsupportedEncodingException, ClientProtocolException, IOException { DefaultHttpClient httpClient = buildHttpClient(timeoutMillis); HttpUriRequest req = buildPut(url, content); HttpResponse httpResponse = httpClient.execute(req); int statusCode = httpResponse.getStatusLine().getStatusCode(); return statusCode == HttpStatus.SC_OK; } public InputStream Get(String url, int timeoutMillis) throws ConnectTimeoutException, UnsupportedEncodingException, ClientProtocolException, IOException { InputStream result = null; DefaultHttpClient httpClient = buildHttpClient(timeoutMillis); HttpUriRequest req = buildGet(url); HttpResponse httpResponse = httpClient.execute(req); HttpEntity httpEntity = httpResponse.getEntity(); result = httpEntity.getContent(); return result; } public InputStream Delete(String url, int timeoutMillis) throws ConnectTimeoutException, UnsupportedEncodingException, ClientProtocolException, IOException { InputStream result = null; DefaultHttpClient httpClient = buildHttpClient(timeoutMillis); HttpUriRequest req = buildDelete(url); HttpResponse httpResponse = httpClient.execute(req); int statusCode = httpResponse.getStatusLine().getStatusCode(); if (statusCode == HttpStatus.SC_OK) { HttpEntity httpEntity = httpResponse.getEntity(); result = httpEntity.getContent(); } return result; } private DefaultHttpClient buildHttpClient(int timeoutMillis) { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpParams httpParameters = httpClient.getParams(); HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutMillis); HttpConnectionParams.setSoTimeout(httpParameters, timeoutMillis); return httpClient; } private HttpPost buildPost(String url, String content) throws UnsupportedEncodingException { HttpPost httpPost = new HttpPost(url); ByteArrayEntity baEntity = new ByteArrayEntity(content.getBytes(UTF8)); baEntity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, CONTENT_TYPE)); httpPost.setEntity(baEntity); return httpPost; } private HttpGet buildGet(String url) throws UnsupportedEncodingException { HttpGet httpGet = new HttpGet(url); return httpGet; } private HttpPut buildPut(String url, String content) throws UnsupportedEncodingException { HttpPut httpPut = new HttpPut(url); ByteArrayEntity baEntity = new ByteArrayEntity(content.getBytes(UTF8)); baEntity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, CONTENT_TYPE)); httpPut.setEntity(baEntity); return httpPut; } private HttpDelete buildDelete(String url) throws UnsupportedEncodingException { HttpDelete httpDelete = new HttpDelete(url); return httpDelete; } }
And when i need more advanced features such as authentication I either extend or make the necessary changes.
Hope this helps someone else.