Bonjour tous le monde !
Au fait, j'ai un problème lors de l'utilisation de la classe HttpClient de Apache (org.apache.commons.httpclient.HttpClient) c'est que lorsque je download une page à partir d'un URL1 et je "coupe" la connexion internet artificiellement (je change de DNS pour que le download echoue), lorsque je lance le download une deuxième fois sur le même URL1 il me retourne le contenu de la page même si la connexion est coupée !!! C'est surement un problème de cache mais je ne sais pas comment le désactiver.
Voici le coode que j'utilise :
//Fonction download
public static String getWebPage(String url) throws Exception {
GetMethod get = new GetMethod(url);
org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient();
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
client.getParams().setBooleanParameter("http.protocol.allow-circular-redirects", true);
client.getParams().setSoTimeout(30000);
client.getParams().setConnectionManagerTimeout(60000);
get.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
get.setRequestHeader("Accept", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
get.setRequestHeader("Accept-Language" , "en,en-us;q=0.8,es-es;q=0.5,es;q=0.3");
get.setRequestHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
//get.setRequestHeader("Keep-Alive", "300");
get.setRequestHeader("Connection", "keep-alive");
get.setRequestHeader("Pragma", "no-cache, no-store");
get.setRequestHeader("Cache-Control", "no-cache, no-store");
String s="";
try {
client.executeMethod(get);
byte[] response = get.getResponseBody();
s = new String(response,0,response.length,"UTF-8");
} catch (Exception e) {
System.out.println("Error or Timeout ! skiping url");
}
url = get.getURI().toString();
get.releaseConnection();
get=null;
client=null;
return s;
}
//Pour le test :
try {
String s = getWebPage("
[ Lien ]");
System.out.println(s);
//je debug et avant ce deuxième download, je coupe la connexion et il me donne le même contenu en ss que dans la variable s
String ss = getWebPage("
[ Lien ]");
System.out.println(ss);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Aidez moi SVP je suis bloqué depuis des jours.
Merci d'avance