如何在Android和/或Java中使用HttpClient管理cookie?我試圖登錄到一個(gè)站點(diǎn)并維護(hù)該會(huì)話/ cookie,以便服務(wù)器能夠識(shí)別我的登錄名,但是我正在努力尋找一種從響應(yīng)中提取cookie并將其設(shè)置為保持我的登錄名的請(qǐng)求的方法。我想知道是否應(yīng)該使用標(biāo)題“ Set-Cookie”或使用CookieStore。任何幫助是極大的贊賞。這是我的代碼,并附有注釋,我認(rèn)為getHeader / getCookie方法可以使用。public class Http{DefaultHttpClient client = new DefaultHttpClient();HttpGet request;HttpEntity entity;HttpResponse response;HttpPost post;CookieStore cookieStore = new BasicCookieStore();HttpContext localContext = new BasicHttpContext();public static void setContext(){ localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);}public static void getPage(String url) throws Exception{ request = new HttpGet(url); response = client.execute(request, localContext); PARSER.preParse(url, response);}public static HttpResponse postPage(List<NameValuePair> params, String host, String action) throws Exception{ post = new HttpPost(host + action); post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); response = client.execute(post, localContext); entity = response.getEntity(); if(entity != null) { entity.consumeContent(); } return response;}public void destoyHttp(){ client.getConnectionManager().shutdown();}}為了希望其他人能更好地理解我的困惑,我添加了我知道確實(shí)可以正常工作并維護(hù)會(huì)話的代碼,但是當(dāng)我嘗試將代碼移至我的實(shí)際應(yīng)用程序中時(shí),它陷入了混亂。
4 回答

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
對(duì)我來(lái)說(shuō),這是行不通的,直到我使HttpContext和CookieStore都保持靜態(tài),以保留所有請(qǐng)求。

慕尼黑的夜晚無(wú)繁華
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
我設(shè)法使用Header []對(duì)象并成功設(shè)置了包括Cookie標(biāo)頭的標(biāo)頭,但這似乎并不能解決我的問題。我已經(jīng)用我所做的代碼編輯了我的問題,但是由于某種原因,當(dāng)我將其移到我的實(shí)際應(yīng)用程序時(shí),它壞了。僅供參考,工作代碼對(duì)標(biāo)頭不執(zhí)行任何操作,就可以了嗎?大聲笑
添加回答
舉報(bào)
0/150
提交
取消