I've got a WebView
with html containing a form (post). When clicking some submit button I get a JSON response.
How can I get this JSON?
If I don't intercept the request the json is displayed on the webview, so I guess I should use shouldInterceptRequest
(I'm using API 12), but I don't know how to get the json in it.
Or maybe there's a better way, like intercepting the response instead of the request?
mWebView.loadUrl(myURL);
isPageLoaded = false; // used because the url is the same for the response
mWebView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest (WebView view, String url) {
if(isPageLoaded){
// get the json
return null;
}
else return super.shouldInterceptRequest(view, url);
}
public void onPageFinished(WebView view, String url) {
isPageLoaded = true;
}
});
Thanks
You should override the shouldOverrideUrlLoading
method of WebViewClient
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
if(flag) {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
// read inputstream to get the json..
...
...
return true;
}
return false
}
@override
public void onPageFinished (WebView view, String url) {
if (url contains "form.html") {
flag = true;
}
}
Also take a look at this How do I get the web page contents from a WebView?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With