一:鏈接超時:connectionTimeoutapp
1:指的是鏈接一個url的鏈接等待時間。post
二:讀取數據超時:soTimeouturl
1:指的是鏈接上一個url,獲取response的返回等待時間。blog
For example:get
// 設置鏈接時間 client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); client.getHttpConnectionManager().getParams().setSoTimeout(60000);
/** * 消息發送處理. * HTTP發送方式 * @param content 消息內容 * @return 返回消息 */ private GeneralReturnInfo postHttpData(String content) { GeneralReturnInfo out = new GeneralReturnInfo(); String result = ""; PostMethod postMethod = new PostMethod(serviceUrl); try { postMethod.setParameter("content", content); HttpClient client = new HttpClient(); client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8"); // 設置鏈接時間 client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); client.getHttpConnectionManager().getParams().setSoTimeout(60000); int status = client.executeMethod(postMethod); if (status == HttpStatus.SC_OK) { result = postMethod.getResponseBodyAsString(); if (StringUtils.isEmpty(result)) { String msg="HTTP訪問失敗(返回報文爲空)(" + serviceUrl + ")."; System.err.println(msg); throw new AdapterException(ErrorType.CLIENT_NET_ERROR, "", msg); } out = JSON.parseObject(result, GeneralReturnInfo.class); } else { String msg="HTTP訪問:返回狀態不等於200(" + status + ")(" + serviceUrl + "))."; System.err.println(msg); throw new AdapterException(ErrorType.CLIENT_NET_ERROR, "", msg); } } catch (Exception e) { // 將新產生的例外封裝 if (e instanceof AdapterException) { throw (AdapterException) e; } else if (e instanceof ConnectException) { System.err.println("HTTP訪問失敗(鏈接失敗)(" + serviceUrl + "))."); throw new AdapterException(ErrorType.CLIENT_NET_ERROR, e, "HTTP訪問失敗(鏈接失敗)(" + serviceUrl + "))."); } else if (e instanceof ConnectTimeoutException) { System.err.println("HTTP訪問失敗(鏈接超時)(" + serviceUrl + "))."); throw new AdapterException(ErrorType.CLIENT_NET_ERROR, e, "HTTP訪問失敗(鏈接超時)(" + serviceUrl + "))."); } else if (e instanceof SocketTimeoutException) { System.err.println("HTTP訪問失敗(訪問超時)(" + serviceUrl + "))."); throw new AdapterException(ErrorType.CLIENT_NET_ERROR, e, "HTTP訪問失敗(訪問超時)(" + serviceUrl + "))."); } else { System.err.println("HTTP訪問失敗(調用異常)(" + serviceUrl + "))."); throw new AdapterException(ErrorType.CLIENT_NET_ERROR, e, "HTTP訪問失敗(調用異常)(" + serviceUrl + "))."); } } finally { // 釋放鏈接 postMethod.releaseConnection(); } return out; }
com.creditharmony.apporveadapter.core.client.ClientPoxy 第170行;it