解决HttpURLConnection setConnectTimeout超时无响应的问题

String dz="";
        BufferedReader in2 = null;
        String result2 = "";
            try {
                String urlStr = "http://68.34.56.82:8848/gzdwfw/people/getAddress?mobile="+hm+"&token=fjkdslauiofdpsau";
                URL realUrl = new URL(urlStr);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                conn.setConnectTimeout(15000);
                conn.setReadTimeout(15000);
                // 发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
                // 定义BufferedReader输入流来读取URL的响应
                in2 = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
                String line;
                while ((line = in2.readLine()) != null) {
                    result2 += line;
                }
             //  System.out.println("常驻行政区结果为****"+result2);
                //解析json字符串
                Map jsonToMap = JSONObject.parseObject(result2);
       

 

 

使用getResponseCode()方法超时了却阻塞了线程,原因是指设置了setConnectTimeout没有设置setReadTimeout参数导致的
setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:设置从主机读取数据超时(单位:毫秒)
例如:
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000);

你可能感兴趣的:(解决HttpURLConnection setConnectTimeout超时无响应的问题)