1

在我的服务中,我运行以下代码:

public class MainService extends Service {
....
....

  CookieManager mCookieManager = CookieManager.getInstance();
  CookieSyncManager mCookieSyncManager = CookieSyncManager.createInstance(mContext);
  if (mCookieSyncManager != null) {
     mCookieSyncManager.sync();
  }

  AsyncHttpClient myClient = new AsyncHttpClient();
  PersistentCookieStore myCookieStore = new PersistentCookieStore(mContext);
  myClient.setCookieStore(myCookieStore);
  myClient.setUserAgent("my service");

  myClient.get("http://example.com/mypage/", new AsyncHttpResponseHandler() {
    ...
  }
  ...
...
}

当我检查我的网络服务器日志时,我可以看到请求标头中存在 cookie。
但这些饼干是旧饼干。

我还从一个 Activity 运行这个 AndroidAsyncHttp 代码。发送相同的旧 cookie。

但是当我在我的 WebView 中打印出当前的 cookie 时,我会看到新的 cookie。

如何使用 AndroidAsyncHttp 发送 WebView 的 cookie?

4

1 回答 1

2

在设置 cookie 之前清除 cookie

myCookieStore.clear();

根据我的经验,我不需要那个 CookieManager。我只用这个。

AsyncHttpClient myClient = new AsyncHttpClient();
PersistentCookieStore myCookieStore = new PersistentCookieStore(mContext);
// clear cookie to make the fresh cookie, to ensure the newest cookie is being send
myCookieStore.clear();
// set the new cookie
myClient.setCookieStore(myCookieStore);
myClient.get("http://example.com/mypage/", new AsyncHttpResponseHandler() {
...
}
于 2014-06-06T02:46:34.813 回答