begin process at 2012 02 12 16:54:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Réseau & internet

 > 

Internet

 > 

HttpClient


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

HttpClient

mercredi 24 octobre 2007 à 13:22:07 | HttpClient

Amine

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
mercredi 24 octobre 2007 à 15:01:21 | Re : HttpClient

AlexN

Tu crées une GetMethod à chaque appel de getWebPage, ça fait deux connexions différentes. Même si elles utilisent le même client. C'est peut être pour ça.
mercredi 24 octobre 2007 à 16:04:08 | Re : HttpClient

Amine

Salut,

Je ne comprend pas votre réponse... j'appelle getWebPage() deux fois et à chaque appel je cree un nouveau client : org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient();
donc les objets sont différents à chaque appel.

merci quand même
mercredi 24 octobre 2007 à 18:12:49 | Re : HttpClient

AlexN

Oui c'est moi qui n'a pas bien lu. Deux clients, deux méthodes, mais la même ressource demandée. Pourquoi les deux réponses seraient différentes ?
mercredi 24 octobre 2007 à 18:52:30 | Re : HttpClient

Amine

La différence entre les 2 appels de la méthode getWebPage(url) c'est que la connexion Internet est disponible pour la première et coupée pour la deuxième, donc logiquement pour le deuxième appel ça doit retourner null ou bien donner une exception... lui il me donne un contenu String non null et qui est égal au résultat du 1er appel avec connexion dispo !

J'espère que c'est claire mnt...
J'attends tjrs votre aide...

jeudi 25 octobre 2007 à 11:42:09 | Re : HttpClient

AlexN

je ne comprend pas ce que veux dire "je change de DNS". Mais si deux instances de clients http avec chacune leur instance de méthodes demandent la même ressource, même si le serveur de noms n'est pas le même, il n'y a aucune raison pour que les réponses (s et ss) changent. Les deux connexions sont distinctes, mais la ressource demandée est la même, peu importe le chemin pour y arriver.


Cette discussion est classée dans : string, client, get, httpclient, setrequestheader


Répondre à ce message

Sujets en rapport avec ce message

un (petit) problème incompréhensible!! [ par joshua91 ] Salut la troupe!voici mon "pseudo"code:public Client trouveclient(String nom,String nclient){ for(int i=0 ; i Client a = (Client)clients.elementAt(i); [Client/Serveur][Multi-Thread] Serveur/ Fcts synchronisées [ par loring ] J'ai une application Client/Serveur. Les clients accèdent aux fonctions du serveurs qui lui ensuite accède à ma base de données.CLIENT SERVEUR BD P jtable+jcombo [ par khatouma ] salut tout le monde j'ai tellement besoin d 'un aidesi il y a  qlq qui peut me dir la methode pour ajouter une ligne dans une jtable en cliquant sur l Problème de récupération d'un fichier Excel avec HttpClient [ par kobee12 ] Bonjour,J'essaie de récupérer un fichier excel en utilisant l'api HttpClient. Seulement, lorsque je récupère le fichier, celui-ci a des caractères qui probleme d'unreachable statement [ par marsrepart ] hello tout le monde.. je suis un newbies....Voila, je dois faire un client/serveur (style FTP)java qui dialogue par le biais de socket (normal .. je s Serveur multiple qui redistribue les données à TOUT ses clients... [ par Hellway ] Voilà, mon problème est assez compliqué et je n'ai trouvé en aucun endroit de la toile réponse à ma question. Je tente donc le coup ici.Je bosse actue classe personne erreur comprend pas merci de m aider [ par djterrence ] Bon je vais y aller classe par classe alors dans la classe personne avec pour descriptif celui-ci La classe Personne Description Cette classe gère afichage d une requet and un jtabl [ par kabi14 ] salut tous le monde j'ai reussi à faire quelque truc mais je rencontre un probleme concernent l affichage du resultat de ma requet sql dans un retourner une référence vers un attribut [ par Chatbour ] Salut à tous et à toutes class Etudiant{<span style="color: rgb(0 button de navigation [ par kolchizin ] [^^zzz] salut j'ai un probleme sur les button de navigation (next et previous) j'arrive a faire les button last et first voila le code : a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales