Android HttpClient 持久 cookie

2024-01-29

更新:这个问题及其答案不应再推荐给任何阅读本文的人。Android 不再推荐 HttpClient(阅读:已弃用),而是推荐 HttpUrlConnection http://android-developers.blogspot.de/2011/09/androids-http-clients.html。现在使用的库的一个很好的例子是Retrofit https://github.com/square/retrofit and OkHttp http://square.github.io/okhttp/。在这个问题的上下文中,cookie 可以通过后续查询来保存、存储和传递。这不是透明处理的。和OkHttp 你可以使用拦截器 http://tsuharesu.com/handling-cookies-with-okhttp/.

我有一个具有多种意图的 Android 应用程序。

第一个意图是登录表单,后续意图依赖于登录过程中提供的 cookie。

我遇到的问题是 cookie 似乎没有在意图中持续存在。我在每个意图中创建新的 HttpClient(我最初尝试使用 Parcelable 将其传输到每个意图,但效果不太好)。

有没有人有任何关于让 cookie 跨意图持久存在的提示?


你可以按照@Emmanuel的建议去做,或者你可以通过基本HttpContext http://developer.android.com/reference/org/apache/http/protocol/BasicHttpContext.html您正在创建的 HttpClient 之间。

上下文和 cookie 的使用示例,完整代码在这里 http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientCustomContext.java

    HttpClient httpclient = new DefaultHttpClient();

    // 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/", localContext);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android HttpClient 持久 cookie 的相关文章