HttpUrlConnection connect()方法仅从android 9(pie)返回IOException

时间:2018-12-30 10:48:01

标签: java android httpurlconnection urlconnection android-9.0-pie

在我的android应用程序中,我有一种通过url检查与服务器的连接的方法。 它运作良好,但仅适用于oreo及以下版本的设备。从Android 9开始,HttpUrlConnection的getResponseCode()方法始终返回IOException。 Logcat还使用urlc.connect();向代码行显示警告。

  

W / System.err:at pl.wrestleone.goodwrestleone.MainActivity.isURLReachable(MainActivity.java:290)

如何修复这种奇怪的方法行为?感谢您的帮助。

static public boolean isURLReachable(Context context, String webUrl) {

    ConnectivityManager cm;
    cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        try {
            URL url = new URL(webUrl);   // Change to "http://google.com" for www  test.
            HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
            urlc.setConnectTimeout(10 * 1000);          // 10 s.
            urlc.connect();
            if (urlc.getResponseCode() == 200) {        // 200 = "OK" code (http connection is fine).
                return true;

            } else {
                return false;
            }
        } catch (MalformedURLException e1) {
            return false;
        } catch (IOException e) {
            return false;
        }
    }
    return false;
}

0 个答案:

没有答案
相关问题