/** * 执行http get请求 * * @param url * @return HttpResult */ public HttpResult invoke(String url) { GetMethod get = null; HttpResult result = null; try { get = new GetMethod(url); getClient().executeMethod(get); int statusCode = get.getStatusCode(); String statusText = get.getStatusText(); result = new HttpResult(statusCode, statusText); if (statusCode == 200) { StringBuffer buf = new StringBuffer(); BufferedReader br = new BufferedReader(new InputStreamReader(get.getResponseBodyAsStream())); String line; while ((line = br.readLine()) != null) { buf.append(line).append('\n'); } result.setBody(buf.toString()); } } catch (SocketTimeoutException e) { result = new HttpResult(408, "REQUEST TIMEOUT. " + e.getMessage()); } catch (java.net.ConnectException e) { result = new HttpResult(321, "Connection refused. " + e.getMessage()); } catch (Exception e) { LOG.error(e); result = new HttpResult(123, e.getMessage()); } finally { if (get != null) { try { // byte[] bytes = get.getResponseBody(); get.releaseConnection(); } catch (Exception e) { LOG.error(e); } } } return result; }