如何拦截WebView中POST请求的JSON响应?
问题描述:
我目前正在开发一个登录模块。点击WebView中的“登录”按钮后,浏览器将收到一个json响应,然后重定向到另一个页面。我怎样拦截这个json响应?如何拦截WebView中POST请求的JSON响应?
我试过shouldOverrideUrlLoading (WebView view, String url)
并打印所有的url输入,但是我找不到json响应。
mWebview.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest (final WebView view, String url) {
Log.i("InterceptRequest", url);
return super.shouldInterceptRequest(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.i("onPageStarted", url);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("onPageFinished", url);
}
});
我也注意到,当我在Chrome和Firefox中看不到这个响应,但我可以在IE中看到它。
谢谢。在Web客户端
答
覆盖shouldOverrideUrlLoading:
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
// read inputstream to get the json..
...
...
return true;
}
忽略该标志是由非相关的代码:P,与编辑的代码 –
再试一次,但此URL登录后已被重定向到主页:( –