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.
 



