如何在Android上委派WebView的网络流量

时间:2015-05-17 03:55:36

标签: android webview

webview组件对android的开发非常有用。但它自己发送和接收HTTP请求。 有没有办法通过本机代码获取/设置webview的网络流量?这就是说,会有一个委托类,webview的所有网络流量(输入/输出,包括ajax流量)都可以委托给这个类,然后该类使用URLConnection发送/接收用于提供webview的HTTP请求。例如,我可以将对Webview的响应的状态代码从301更改为304。

或者没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

在WebView上设置WebViewClient1)可以帮助您接收页面加载/完成请求,http身份验证请求,ssl错误,重定向过多等错误。此外,您还可以拦截资源请求WebViewClient::shouldInterceptRequest2)并返回回复。

webview.setWebViewClient(new WebViewClient() {
    @Override
    //method deprecated. Use shouldInterceptRequest(WebView view, WebResourceRequest request) on API 21 and above.
    public WebResourceResponse shouldInterceptRequest (final WebView view, String url) {
        if ( interested ) {
            // url load/cache and return response
        } else {
            return super.shouldInterceptRequest(view, url);
        }
    }
}