Android HttpClient持久性cookie

Kno*_*sos 37 java cookies android httpclient

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

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

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

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

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

Aar*_*ers 31

您可以执行@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);
Run Code Online (Sandbox Code Playgroud)


Emm*_*uel 22

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