WebView에서 웹 페이지를 표시하는 간단한 앱이 있습니다. URL 중 하나가 아직 온라인 상태가 아니기 때문에 나는 온라인이 아니며 실제로있을 때 URL을로드하는 축배를 만들고 싶습니다.URL로드 여부 캐치
누군가 어떻게 그 방법을 알고 있습니까?
미리 감사드립니다.
WebView에서 웹 페이지를 표시하는 간단한 앱이 있습니다. URL 중 하나가 아직 온라인 상태가 아니기 때문에 나는 온라인이 아니며 실제로있을 때 URL을로드하는 축배를 만들고 싶습니다.URL로드 여부 캐치
누군가 어떻게 그 방법을 알고 있습니까?
미리 감사드립니다.
URLConnection을 열고 먼저 연결의 응답 코드를 확인하십시오. 이것이 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 {
}
말을 한 후 2 개 개의 다른 예외를 잡을 수 있습니다 당신은 자신의 예외를 확장 할 수
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 블록의 끝에서 예기치 않은 결과를 처리하기 때문에 코드를 좀 더 읽기 쉽습니다. 또한, 아마도 다음 함수에 의해 처리되지 않을 것이지만,이 함수를 호출 한 함수에 의해 304 (이후 수정되지 않은)를 던질 필요가 있습니다. 이것은 성공/실패시 부울을 전달하는 것보다 더 확신합니다. –
또한, ve는 안드로이드 장치 (배터리 수명 시간 절약)의 라디오를 켭니다 try 블록의 끝에 연결을 닫았습니다 –
글쎄요 ...
그것은 "url.openconnection"에 오류가 제공되도록try {
// Write your code to access the website here
} 캐치 (예외 전자) {
// Your execution will reach here once the site can't be reached
Toast.makeText(Your_Activity.this, "Site still not online",duration).show();
}는 거의 대답
감사는 내가 URL로 문자열을 사용합니다. – user1534326
@ user1534326 편집 내역보기 –
그게 전부 겠지. – DaShaun