我需要在Web服务不可用时处理异常。在我的应用程序中,我正在请求Web服务,它将返回一个XML数据。当Web服务可用时,我的应用程序正常工作。但是当Web服务不可用时,我的应用程序就会崩溃。如何在java中捕获该异常。请注意,我正在为Android开发一个应用程序。
当Web服务不可用时,它看起来像下面的图像
答案 0 :(得分:2)
使用此功能,您可以检查是否可以使用Web服务
public void isAvailable(){
// first check if there is a WiFi/data connection available... then:
URL url = new URL("URL HERE");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Connection", "close");
connection.setConnectTimeout(10000); // Timeout 10 seconds
connection.connect();
// If the web service is available
if (connection.getResponseCode() == 200) {
return true;
}
else return false;
}
答案 1 :(得分:1)
这就是我在Krishna's代码
的帮助下解决这个问题的方法public static boolean isAvailable(String link){
boolean available = false;
URL url = null;
try {
url = new URL(link);
} catch (MalformedURLException e) {
e.printStackTrace();
}
HttpURLConnection connection = null;
try {
connection = (HttpURLConnection) url.openConnection();
} catch (IOException e1) {
}
connection.setRequestProperty("Connection", "close");
connection.setConnectTimeout(100000); // Timeout 100 seconds
try {
connection.connect();
} catch (IOException e) {
}
try {
if (connection.getResponseCode() == 200) {
// return true;
available = true;
}
else
available = false;
//return false;
} catch (IOException e) {
e.printStackTrace();
}
return available;
}