我剛開始使用HttpClient並使用它登錄我的網站。問題是,我無法獲取餅乾,所以我不能保持登錄狀態。HttpClient 4.2.5使用cookies
這是我的代碼,可能不是很好... 有人能告訴我如何處理這個庫的cookie嗎?或者,也許它存在一個文檔或教程,我可以瞭解更多關於? (我已經檢查過在線文檔,不是很有幫助)。
public MyHttpClient() {
this.client = new DefaultHttpClient();
this.client.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
}
/**
* Retourne le contenu d'une requête POST
* @param url L'url de la requêtes
* @return Le contenu de la réponse à a reque^te
*/
public String sendRequest(String[] args){
String requestResponse = "";
HttpPost post = new HttpPost(MyHttpClient.AJAX_API_URL);
try {
//Test avec httpClient
HttpResponse response;
HttpEntity entity;
//Déclaration de la liste des valeurs
List<BasicNameValuePair> listKeys = new ArrayList<>();
for(int i = 0; i < args.length; i += 2){
listKeys.add(new BasicNameValuePair(args[i],args[i+1]));
}
//On ajoute les clefs à la requete
post.setEntity(new UrlEncodedFormEntity(listKeys,Consts.UTF_8));
response = client.execute(post);
entity = response.getEntity();
//Récupération des cookies
for(Cookie cookie : client.getCookieStore().getCookies()){
this.listCookies.add(cookie);
Logger.getLogger(MyHttpClient.class.getName()).log(Level.INFO, "Cookie "+cookie.getName());
}
requestResponse = EntityUtils.toString(entity);
} catch (IOException ex) {
Logger.getLogger(MyHttpClient.class.getName()).log(Level.SEVERE, null, ex);
} finally {
post.releaseConnection();
}
return requestResponse;
}
如何處理cookie,您是什麼意思? – Raptor
在我的代碼中,我沒有收到任何cookie,所以我的會話總是被重置。我如何使用Cookie與HttpClient能夠檢索併發送與我的請求的cookie? –