2016-11-11 1 views
0

J'ai une WebView dans mon application Android qui charge une page Web de mon pi de framboise. Cette page Web est protégée par l'authentification de base.Arrêter les tentatives dans Android WebView Authentification HTTP

webView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { 
     handler.proceed(user, pass); 
    } 

    @Override 
    public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { 
     super.onReceivedHttpError(view, request, errorResponse); 
// I'm always landing here if authentification fails. 
    } 
}); 

webView.loadUrl(protocol + "://" + hostname + ":" + port); 

Comment puis-je arrêter les tentatives si l'authentification échoue? Si je n'arrête pas cela, l'application envoie une demande toutes les secondes jusqu'à ce que je ferme l'application.

Merci.

Répondre

0
webView.setWebViewClient(new WebViewClient() { 
     int tries = 0; 

     @Override 
     public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { 
      handler.proceed(user, pass); 
     } 

     @Override 
     public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { 
      super.onReceivedHttpError(view, request, errorResponse); 

      if (tries > 1) { 
       webView.destroy(); 
       Toast.makeText(getApplicationContext(), errorResponse.getStatusCode() + ": " 
         + errorResponse.getReasonPhrase(), Toast.LENGTH_LONG).show(); 
      } 
      tries++; 
     } 
    }); 

    webView.loadUrl(protocol + "://" + hostname + ":" + port);