[英]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中,上述方法可能由於兩個原因而失敗。
您定位的 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.