Веб-страница, на которую я пытаюсь получить доступ, отправляет обратно ошибку 403. Я ожидаю, что WebViewClient получит ошибку, но это не так. Не предполагается ли ошибка?
engine.setWebViewClient(new WebViewClient() {
boolean error = false;
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
//IT DOESN'T COME HERE even IF SERVER SENDS BACK 403 ERROR
}
});
Это похоже на то, что мне нужно прочитать ответ, используя HttpRequest, и проанализировать ответ, чтобы проверить, что происходит. Есть ли другой способ сделать это? Могу ли я проверить заголовки из WebView?
Мне пришлось выполнить требование, используя два запроса. Первый запрос для проверки правильности учетных данных и отсутствия ошибки (с использованием HttpURLConnection). Только если ответ в порядке, я загружаю веб-просмотр.
protected Void doInBackground(final String... url) {
boolean failed = false;
int error = 0;
try {
URL urlToLoad = new URL(url[0]);
HttpURLConnection conn = (HttpURLConnection) urlToLoad
.openConnection();
int response = conn.getResponseCode();
if (response != HttpURLConnection.HTTP_OK) {
error = response;
failed = true;
}
} catch (Exception e) {
e.printStackTrace();
}
if (!failed) {
webView.loadUrl(url[0]);
} else {
handler.post(hideProgressRunnable);
connecting = false;
showError(ErrorMap.getErrorForHttpCode(error));
}
return null;
}