La mejor manera de interceptar una solicitud de WebView en Android

Estoy usando unWebView en mi aplicación en la que debo interceptar solicitudes. Actualmente estoy usando el siguiente código para hacerlo.

public WebResourceResponse shouldInterceptRequest (WebView view, String url) {
    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
    conn.setRequestProperty("User-Agent", userAgent);

    String mime;
    if (url.lastIndexOf('.') > url.lastIndexOf('/')) {
        String ext = url.substring(url.lastIndexOf('.') + 1);
        mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
    } else {
       mime = "text/html";
    }
    return new WebResourceResponse(mime, "UTF-8", conn.getInputStream());
}

El código anterior funciona bien en la mayoría de los casos, pero no en todos. Por ejemplo, cuando intento iniciar sesión en Outlook, solo muestra que mi correo electrónico o contraseña son incorrectos, también he visto otros casos en los que las solicitudes se rompen, pero todo funciona bien si eliminoshouldInterceptRequest.

¿Hay alguna forma mejor que la que estoy usando actualmente para interceptar solicitudes?

Respuestas a la pregunta(1)

Su respuesta a la pregunta