簡體   English   中英

如何在android中檢查URL的可用性

[英]How can I check the availability of an URL in android

我的問題是如何檢查 URL 的可用性:

我的代碼

  public boolean URLvalide(){

    String URL_CHECK = "testurl";

    try {
        URL url = new URL(URL_CHECK);
        URLConnection con = url.openConnection();
        con.connect();
        return true;
    } catch (MalformedURLException e) {
        return false;
    } catch (IOException e) {
        return false;
    }
}

每次都返回false

以下代碼使用核心 Java 實現來檢查鏈接是否可訪問。 它應該適用於Android。 記住URL要填寫完整,即有scheme,主機名,否則拋出異常。

public boolean checkURL () {
    try {
        URL myUrl = new URL("http://www.google.com");
        HttpURLConnection connection = (HttpURLConnection) myUrl.openConnection();
        connection.connect();
        int statusCode = connection.getResponseCode();
        if (statusCode == HttpURLConnection.HTTP_OK) {
            System.out.println("Accessible");
        } else {
            System.out.println("Not-Accessible");
        }
    } catch (Exception e) {
        System.out.println("not-accessible");
    }
    }

更新:

在Android中,上述方法可能由於兩個原因而失敗。

  1. 您定位的 URL 是 http 協議而不是 https。 在這種情況下,您需要在應用程序清單中允許明文流量。

     <application> ... android:usesCleartextTraffic="true"

2.您可能正在主線程中運行檢查 url 代碼。 Android 防止在主線程中訪問網絡請求。 要解決此問題,請將您的代碼放在 AsyncTask 或單獨的線程中。 以下代碼僅用於說明。

Thread backgroundThread = new Thread(new Runnable() {
        @Override
        public void run() {
            checkURL();
        }
    });
    backgroundThread.start();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM