0

I'm trying to intercept webview inner subsequent calls and passing cookies with request header.

I found a way to pass like below,

    @Override
                public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
                    if (url.contains("/ccavenue_redirect_in") || url.contains("/ccavenue_cancel")) {
                        return loadRequestWithHeaders(url);
                    } else {
                        return super.shouldInterceptRequest(view, url);
                    }
                }

private WebResourceResponse loadRequestWithHeaders(String url) {
                try {
                    URL urlObject = new URL(url);
                    HttpURLConnection con = (HttpURLConnection) urlObject.openConnection();
                    con.setRequestMethod("POST");

                    CookieSyncManager.createInstance(PaymentWebviewActivity.this);
                    CookieManager cookieManager = CookieManager.getInstance();
                    cookieManager.removeSessionCookie();
                    cookieManager.setCookie(DOMAIN_NAME, AccountPreferenceUtils
                            .newInstance(PaymentWebviewActivity.this)
                            .getStringPrefs(AccountPreferenceUtils.PreferenceName.AUTH_COOKIE));
                    CookieSyncManager.getInstance().sync();

                    con.setRequestProperty("Cookie", AccountPreferenceUtils
                            .newInstance(PaymentWebviewActivity.this)
                            .getStringPrefs(AccountPreferenceUtils.PreferenceName.AUTH_COOKIE));

                    String[] types = parseContentHeader(con.getContentType());
                    return new WebResourceResponse(types[0], "UTF-8", con.getErrorStream());
                } catch (Exception ex) {
                    return null;
                }
            }

I'm able to pass cookie, but that url has some encrypted body that is missing after interrupting the call.

Give some idea about how to fix it.

Sreedhu Madhu
  • 2,480
  • 2
  • 30
  • 40

0 Answers0