HttpClient发生IOException的问题
每次执行int statusCode = httpClient.executeMethod(httpGet);就会发生错误,请问这是为什么?
private static HttpClient getHttpClient() {
HttpClient httpClient = new HttpClient();
// 设置 HttpClient 接收 Cookie,用与浏览器一样的策略
httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
// 设置 默认的超时重试处理策略
httpClient.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
// 设置 连接超时时间
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(20000/*TIMEOUT_CONNECTION*/);
// 设置 读数据超时时间
httpClient.getHttpConnectionManager().getParams().setSoTimeout(20000/*TIMEOUT_SOCKET*/);
// 设置 字符集
httpClient.getParams().setContentCharset("UTF-8"/*UTF_8*/);
return httpClient;
}
private static GetMethod getHttpGet(String url, String cookie, String userAgent) {
GetMethod httpGet = new GetMethod(url);
// 设置 请求超时时间
httpGet.getParams().setSoTimeout(20000/*TIMEOUT_SOCKET*/);
httpGet.setRequestHeader("Host", "www.baidu.com"
/*URLs.HOST*/);
httpGet.setRequestHeader("Connection","Keep-Alive");
httpGet.setRequestHeader("Cookie", cookie);
httpGet.setRequestHeader("User-Agent", userAgent);
return httpGet;
}
private static void RunHttp()
{
new Thread() {
public void run() {
HttpClient httpClient = null;
GetMethod httpGet = null;
String newUrl = "http://www.baidu.com";
try
{
httpClient = getHttpClient();;
httpGet = getHttpGet(newUrl, null, null);
int statusCode = httpClient.executeMethod(httpGet);
if (statusCode != HttpStatus.SC_OK)
{
// throw AppException.http(statusCode);
int a = 5;
}
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
// 释放连接
httpGet.releaseConnection();
httpClient = null;
}
}
}.start();
}