Android中的Http cookie商店

我正在为该网站开发一个授权的Android客户端。 我有一个post方法。 我的代码示例:

public void run() { handler.sendMessage(Message.obtain(handler, HttpConnection.DID_START)); httpClient = new DefaultHttpClient(); HttpConnectionParams.setSoTimeout(httpClient.getParams(), 25000); HttpResponse response = null; try{ switch (method){ case POST: HttpPost httpPost = new HttpPost(url); httpPost.setHeaders(headers); if (data != null) httpPost.setEntity(new StringEntity(data)); response = httpClient.execute(httpPost); break; } processEntity(response); }catch(Exception e){ handler.sendMessage(Message.obtain(handler, HttpConnection.DID_ERROR, e)); } ConnectionManager.getInstanse().didComplete(this); } 

如何保持cookies?

您从HttpResponse response获取Cookie:

 Header[] mCookies = response.getHeaders("cookie"); 

并将它们添加到您的下一个请求中:

 HttpClient httpClient = new DefaultHttpClient(); //parse name/value from mCookies[0]. If you have more than one cookie, a for cycle is needed. CookieStore cookieStore = new BasicCookieStore(); Cookie cookie = new BasicClientCookie("name", "value"); cookieStore.addCookie(cookie); HttpContext localContext = new BasicHttpContext(); localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); HttpGet httpGet = new HttpGet("http://www.domain.com/"); HttpResponse response = httpClient.execute(httpGet, localContext);