List of usage examples for org.apache.commons.httpclient HttpMethodBase getResponseBody
public byte[] getResponseBody(int maxlen) throws IOException
From source file:org.deri.pipes.utils.HttpResponseCache.java
private static HttpResponseData getDataFromRequest(HttpClient client, String location, Map<String, String> requestHeaders) throws IOException, HttpException { HttpMethodBase method = new GetMethod(location); method.setFollowRedirects(true);/*from ww w .ja va 2 s.c o m*/ try { if (location.length() > 2000 && location.indexOf('?') >= 0) { logger.info("Using post method because request location is very long"); PostMethod postMethod = new PostMethod(location.substring(0, location.indexOf('?'))); String urlDecoded = URLDecoder.decode(location.substring(location.indexOf('?') + 1), "UTF-8"); String[] parts = urlDecoded.split("\\&"); for (String part : parts) { String[] keyval = part.split("=", 2); if (keyval.length == 2) { postMethod.addParameter(keyval[0], keyval[1]); } else { postMethod.addParameter(keyval[0], ""); } } method = postMethod; } addRequestHeaders(method, requestHeaders); int response = client.executeMethod(method); HttpResponseData data = new HttpResponseData(); setExpires(data, method); data.setResponse(response); data.setCharSet(method.getResponseCharSet()); Header lastModifiedHeader = method.getResponseHeader(HEADER_LAST_MODIFIED); if (lastModifiedHeader != null) { data.setLastModified(lastModifiedHeader.getValue()); } Header contentTypeHeader = method.getResponseHeader(HEADER_CONTENT_TYPE); if (contentTypeHeader != null) { data.setContentType(contentTypeHeader.getValue()); } data.setBody(method.getResponseBody(MAX_CONTENT_SIZE)); return data; } finally { method.releaseConnection(); } }