更新:这个问题及其答案不应再推荐给任何阅读本文的人。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(使用前将#替换为@)