是否可以在 HTTP 请求中使用 WebView 的 cookie?如果是,我该怎么做?
谢谢
CookieManager 就是您要找的东西!
CookieSyncManager.createInstance(context)
创建经理
CookieSyncManager.getInstance().startSync()
在 Activity.onResume() 中,并调用
CookieSyncManager.getInstance().stopSync()
在 Activity.onPause() 中。
要获得即时同步而不是等待计时器触发,主机可以调用
CookieSyncManager.getInstance().sync()
请注意,即使 sync() 也是异步发生的,所以不要在您的活动正在关闭时执行此操作。
以下是您可能会如何使用它:
// use cookies to remember a logged in status
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
WebView webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
setContentView(webview);
webview.loadUrl([MY URL]);
编辑:如果你想用 HttpClient 来做,你需要创建一个 HttpContext。
// Create a local instance of cookie store
CookieStore cookieStore = new BasicCookieStore();
// Create local HTTP context
HttpContext localContext = new BasicHttpContext();
// Bind custom cookie store to the local context
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
HttpGet httpget = new HttpGet("http://www.google.com/");
System.out.println("executing request " + httpget.getURI());
// Pass local context as a parameter
HttpResponse response = httpclient.execute(httpget, localContext);