Java 捕获是否加载了url
我有一个简单的应用程序,可以在网络视图中显示网页。因为其中一个url还没有在线,我想做一个祝酒词,说它没有在线,当它在线时,它只是加载url 有人知道怎么做吗Java 捕获是否加载了url,java,android,url,webview,Java,Android,Url,Webview,我有一个简单的应用程序,可以在网络视图中显示网页。因为其中一个url还没有在线,我想做一个祝酒词,说它没有在线,当它在线时,它只是加载url 有人知道怎么做吗 提前感谢。打开URL连接,然后首先检查连接的响应代码。如果是404,则表示该站点不存在。然后你就可以做所有你需要的网站缺失的东西了。示例代码: try { Url url = new URL(someStringUrl); HttpURLConnection huc = ( HttpURLConnection
提前感谢。打开URL连接,然后首先检查连接的响应代码。如果是404,则表示该站点不存在。然后你就可以做所有你需要的网站缺失的东西了。示例代码:
try {
Url url = new URL(someStringUrl);
HttpURLConnection huc = ( HttpURLConnection ) url.openConnection ();
if(huc.getResponseCode() == 404) {
//Site doesnt exist, returned 404 error
}
} catch(Exception e) {
e.printStackTrace();
}
比如说,您可以扩展自己的异常
public class Exception404 extends Exception {
}
然后捕获两个不同的异常:
HttpURLConnection huc = null;
try {
Url url = new URL(someStringUrl);
huc = ( HttpURLConnection ) url.openConnection ();
if(huc.getResponseCode() == 404)
throw new Exception404();
//...
//...
//...
} catch(Exception404 e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
} finally {
//close connection (saves battery life time)
huc.disconnect();
}
或者您可以以相同的方式抛出相同的异常来处理这两个故障
try {
// Write your code to access the website here
}捕获(例外e){
}谢谢,这几乎就是答案,只是我使用了一个字符串作为url,所以它在“url.openconnection”上出现了一个错误。@user1534326请看我的编辑它不起作用,它只给出了一个空白页,我还试着祝酒。但是什么都没有。另外,当我尝试一个网页,是在线的时候,它给出了一个空白页,这与我有什么不同?他们都有完全相同的结果,只是我的先发。。。?如果有重大差异,请告诉我,我可能遗漏了一些内容是的,你是对的。但是,抛出异常会使代码更具可读性,因为你会在try块末尾处理意外的结果。此外,可能需要抛出304(未修改的,因为),这将不会由以下函数处理,但是通过调用此函数的函数。这比在成功/失败时传递布尔值更令人信服。此外,我已经在try块的末尾关闭了连接,这将打开android设备的收音机(节省电池寿命),抛出一个异常。与if语句相比,它仍然不太美观或可读,或切换响应代码。但是,我确实忘记了diconnect;)
// Your execution will reach here once the site can't be reached
Toast.makeText(Your_Activity.this, "Site still not online",duration).show();