一:連接超時:connectionTimeout
1:指的是連接一個url的連接等待時間。
二:讀取數據超時:soTimeout
1:指的是連接上一個url,獲取response的返回等待時間。
For example:
// 設置連接時間
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行;
