IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[servlet] Problème d'accès d'une servlet à un serveur web


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Par défaut [servlet] Problème d'accès d'une servlet à un serveur web
    bonjour
    Je souhaite faire quelque chose qui est très bien détaillé dans Servlets et JavaServer Pages Le guide du développeur dans la partie "les servlets et les applications 3 tiers" et qui malheureusement ne marche pas chez moi.

    J'ai créé une servlet des plus simples, avec un formulaire à 1 champs (nommé "saisie"); lorsque l'utilisateur renseigne ce champs, un autre site, au hasard google, est appelé avec comme paramètre la saisie que l'utilisateur vient de faire. Ensuite ma méthode doPost est sensée m'afficher le code de la page de réponse de google:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    String saisie=requete.getParameter("saisie");
    [...]
    String urlStr = "http://www.google.fr/search?hl=fr&q="+saisie;
    URL url = new URL(urlStr);
    InputStream is = new BufferedInputStream(url.openStream());
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    while(true){
    	String s = br.readLine();
    	if (s == null){
    		break;
    	}
    	buffer.append(s);
    }
    [...]
    pw.println(buffer.toString());
    J'ai tout simplement recopié ce code du livre dont j'ai fait la mention. Au départ ca ne marchait pas du tout, certainement à cause d'un proxy et j'ai du rajouter ces lignes de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.setProperty( "proxySet", "true" );
    System.setProperty( "http.proxyHost", "mon_proxy" );
    System.setProperty( "http.proxyPort", "port_proxy");
    Alors c'est là que ca devient amusant: même en ayant mis tous les try/catch que je pouvais, tout passe mais ce qui est lu dans le flux est:
    "la ligne lue est: <plein de rectangles>" (j'ai fait un System.out.println("la ligne lue est: "+s); )

    Je ne comprend pas ce qui peut se passer d'autant plus qu'il ne semble y avoir aucune erreur vu que ca ne plante jamais. (surtout que je n'ai quasiment rien modifié au code)
    Je n'ai pas trouvé de sujet similaire à mon problème, s'il y en a un, je vous serais reconaissante de me donner son adresse avant de clore ce sujet.

    Merci d'avance et bon week end.
    PS: je n'ai pas internet chez moi, je risque de ne pas répondre aux demandes de précisions éventuelles avant quelques jours

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    bonjour,

    a vu de nez il s'agit d'une incompatibilité entre des flux binaires et textes.

    voici un lien vers un exemple similaire.

    http://java.developpez.com/faq/java/...reseau#postUrl

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Par défaut
    merci pour cette réponse,
    je viens de la tester, mais je pense que le problème vient plus du format du flux que je récupère du site.
    J'ai mis à cette adresse (même s'il n'y a pas grand chose à voir!!) ce que je reçois véritablement et c'est exactement la même chose en appliquant la solution que vous m'avez proposé qu'avant.
    Mais je ne trouve toujours pas de piste de solution.
    J'indique quand même le code modifié des fois que j'aie fait une erreur dedans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    	String donnees = URLEncoder.encode("domain", "UTF-8")+"="+URLEncoder.encode(saisie, "UTF-8");
    	String urlStr = "http://mon url";
    	url = new URL(urlStr);
    	URLConnection conn = url.openConnection();
    	conn.setDoOutput(true);
    	writer = new OutputStreamWriter(conn.getOutputStream());
    	writer.write(donnees);
    	writer.flush();
    	reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    	String ligne;
    	while ((ligne = reader.readLine()) != null) {
    		System.out.println(ligne);
    		pw.println(ligne);
    	}

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Par défaut résolu
    j'ai réglé le problème qui finalement n'avait pas grand chose à voir avec du codage: c'était un problème de proxy.
    Je pensais avoir réglé le problème du proxy car sans rien mettre j'avais un timeout et avec mes lignes de code je me connectais. Mais en fait j'avais rentré des paramètres d'un proxy socks4 en donnant en argument http.proxyHost et http.proxyPort: du coup je recevais n'importe quoi. Il a suffit que je trouve les bons paramètres du proxy. Sinon tout marchait niquel.
    Merci quand même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/11/2009, 09h59
  2. Réponses: 3
    Dernier message: 05/05/2006, 18h36
  3. Réponses: 2
    Dernier message: 15/02/2006, 17h35
  4. [Debutant][Tomcat] acces à une servlet impossible .
    Par michaelbob dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 04/04/2005, 10h01
  5. [Tomcat]Droit d'accès aux fichiers créés par une servlet
    Par loulouleboss dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 15/07/2004, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo