android - LoopJ AndroidAsyncHttp 和持久性 cookie 存储

标签 android cookies android-async-http loopj

在我的服务中,我运行这段代码:

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() {
    ...
  }
  ...
...
}

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

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

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

如何使用 AndroidAsyncHttp 发送 WebView 的 cookie?

最佳答案

设置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() {
...
}

关于android - LoopJ AndroidAsyncHttp 和持久性 cookie 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23609941/

相关文章:

java - 解析 JSON 数据时出现异常

java - 在后台运行应用程序

javascript - 使用不带引号的路径设置 cookie 是否安全?

android - 自动登录应用程序

AsyncHttpClient 的 java.lang.NoClassDefFoundError - API 19

java - 如何获取InputStream的副本?

java - 无法使用 Firebase 将元素添加到 ArrayList

cookies - 使用 net/http 设置 cookie

java - 如何使用 AsyncHttpClient 对错误的 http 代码实现重试功能?

java - (Android | Java) AndroidAsyncHttp (Loopj) 在继续线程之前完成 Web 请求