package com.produban.openbus.console.util; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpHead; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.log4j.Logger; public class HttpConnector { private static Logger LOG = Logger.getLogger(HttpConnector.class); public HttpEntity launchHttp(String url, String action, String json) throws Exception { try { HttpClient httpClient = new DefaultHttpClient(); HttpPut requestPut = null; HttpPost requestPost = null; HttpDelete requestDelete = null; HttpGet requestGet = null; HttpResponse response = null; HttpHead requestHead = null; StringEntity input = null; if (json != null) { input = new StringEntity(json); input.setContentType("application/json"); } LOG.info("URL = " + url); LOG.info("json = " + json); LOG.info(action + " running...."); if (action.equals("PUT")) { requestPut = new HttpPut(url); requestPut.setHeader("Accept", "application/json"); requestPut.setHeader("Content-type", "application/json"); requestPut.setEntity(input); response = httpClient.execute(requestPut); } else if (action.equals("POST")) { requestPost = new HttpPost(url); requestPost.setHeader("Accept", "application/json"); requestPost.setHeader("Content-type", "application/json"); requestPost.setEntity(input); response = httpClient.execute(requestPost); } else if (action.equals("DELETE")) { requestDelete = new HttpDelete(url); response = httpClient.execute(requestDelete); } else if (action.equals("GET")) { requestGet = new HttpGet(url); response = httpClient.execute(requestGet); } else if (action.equals("HEAD")) { requestHead = new HttpHead(url); response = httpClient.execute(requestHead); } else { throw new Exception("No existe ninguna accion"); } if (response.getStatusLine().getStatusCode() < 200 || response.getStatusLine().getStatusCode() >= 400) { LOG.error(response.getStatusLine().getReasonPhrase()); throw new IOException("Error code = " + response.getStatusLine().getStatusCode()); } LOG.info(action + " done"); return response.getEntity(); } catch (Exception e) { LOG.error(e); throw e; } } }