在android中设置httpclient超时



First it system.out"network found",最后我看不到网络。"代码"不会出现公共类NetUtil{公共静态布尔checkNet(上下文上下文){

    ConnectivityManager manager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = manager
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    if (info != null && info.isConnected()) {
        System.out.println("network found");
        HttpClient httpclient = new DefaultHttpClient();
        httpclient.getParams().setParameter(
                CoreConnectionPNames.CONNECTION_TIMEOUT, 1000);
        httpclient.getParams().setParameter(
                CoreConnectionPNames.SO_TIMEOUT, 1000);
        HttpGet httpGet = new HttpGet("http://www.baidu.com");
        try {
            HttpResponse response = httpclient.execute(httpGet);
            int code = response.getStatusLine().getStatusCode();
            System.out.println("code:" + code);
            if (code == 200) {
                System.out.println("success");
                return true;
            } else if (code != 200) {
                System.out.println("failed");
                return false;
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
    }
    System.out.println("no network");
    return false;
}

}

httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1500);
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 1500);

可以通过这种方式设置http请求的超时

int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

最新更新