开发者

WebView with Headers Connection Error

I am trying to open a Web view of a site (in Android) that needs token/Cookie in the headers for authentication.

I try to open the page using code below

HashMap<String,String> headers = new HashMap<String,String>();
headers.put("Cookie","MyToken");
MyWebView.loadUrl("https://myURL.com",headers);

I am hitting the onRecei开发者_开发百科vedError with following values errorCode: -6 *description: The connection to the server was unsuccessful.*

(PS: Since this site can be access from Intranet, using emulator I don't see this error the page loads correctly. Also HttpPost works fine with same token)


This is just a quick post about adding cookies to a web view. If you’ve ever tried to do this the way most people have said that it should be done, you’ve failed miserably and found this post. :)

The way it’s supposed to work is you set the cookie on the CookieManager and then tell the CookieSyncManager to sync.

CookieManager.getInstance().setCookie(domain, value);
CookieSyncManager.getInstance().sync();

I’ve never got this to work as described. With or without async tasks waiting for the threads to catch up.

Instead, I just add the cookie in the header of all the loadUrl calls.

Map<String, String> headers = new HashMap<String, String>();
headers.put("Cookie", "cookieName=cookieValue;domain=domain.com;path=/;Expires=Thu, 2 Aug 2021 20:47:11 UTC;");
webView.loadUrl("myurl.com", headers );

Caveat: I only need to initially load the appropriate cookie for the request, if you want to cover nested calls from inside the browser, you need to override shouldOverrideUrlLoading.

webView.setWebViewClient(new WebViewClient() {
     @Override
     public boolean shouldOverrideUrlLoading(WebView view, String url) {
         view.loadUrl(url, headers);
         return false;
     }
});

If you need to inject the cookie for all requests(including images, js, etc), you’re going to need to override shouldInterceptRequest,


That is not a valid cookie header. Try:

headers.put("Cookie", "foo=bar");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜