package com.linkedin.thirdeye.anomaly.utils; import java.io.IOException; import java.io.InputStream; import org.apache.commons.io.IOUtils; import org.apache.http.HttpHost; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; public abstract class AbstractResourceHttpUtils { private final HttpHost resourceHttpHost; protected AbstractResourceHttpUtils(HttpHost httpHost) { this.resourceHttpHost = httpHost; } protected HttpHost getResourceHttpHost() { return resourceHttpHost; } protected String callJobEndpoint(HttpRequest req) throws IOException { HttpClient controllerClient = new DefaultHttpClient(); HttpResponse res = controllerClient.execute(resourceHttpHost, req); String response = null; try { if (res.getStatusLine().getStatusCode() != 200) { throw new IllegalStateException(res.getStatusLine().toString()); } InputStream content = res.getEntity().getContent(); response = IOUtils.toString(content); } finally { if (res.getEntity() != null) { EntityUtils.consume(res.getEntity()); } } return response; } }