WebView не получает ошибку, даже если сервер возвращает ошибку - PullRequest
1 голос
/ 16 апреля 2011

Веб-страница, к которой я пытаюсь получить доступ, возвращает ошибку 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?

1 Ответ

2 голосов
/ 18 апреля 2011

Мне пришлось выполнить требование, используя два запроса. Первый запрос, чтобы проверить, в порядке ли учетные данные и нет ли ошибки (используя 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...