繁体   English   中英

Android HttpClient持久性cookie

[英]Android HttpClient persistent cookies

更新:不应再向阅读此内容的任何人推荐此问题及其答案。 Android不再推荐使用HttpClient(读取:弃用),而是推荐使用HttpUrlConnection 现在使用的库的一个很好的例子是RetrofitOkHttp 在此问题的上下文中,可以使用后续查询保存,存储和传递cookie。 这不是透明处理的。 使用OkHttp,您可以使用拦截器

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

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

我遇到的问题是,cookie似乎并没有贯穿整个意图。 我在每个意图中创建新的HttpClients(我最初尝试将Parcelable传输到每个意图,但效果不是很好)。

有没有人有任何提示让饼干坚持意图?

您可以执行@Emmanuel建议的操作,也可以在要创建的HttpClient之间传递BasicHttpContext

示例使用上下文和cookie, 在此处完成代码

    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);

不要创建新的HttpClients; 这将清除cookie。 重用一个HttpClient。

在Application类中定义HttpClient,并在activity中使用它。

在申请中

public class AAA extends Application {
    public HttpClient httpClient; 

    httpClient = new DefaultHttpClient(); 

在活动中

AAA aaa = (AAA)getApplication();
httpClient = app.httpClient;

使您的httpClient成为单例类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM