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]Récupérer une entete HTTP via un servlet


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [Servlet]Récupérer une entete HTTP via un servlet
    Je veux mettre en place une petite servlet qui fait une requete GET vers une page quelconque pour en afficher l'entete HTTP, je lance cette servlet depuis mon brouteur, ça mayonne 40 secondes et je vais direct dans mon terminé.

    Si je contourne le probleme en me servant d'un pbjet URL, j'obtiens mon entete, mais mon but c'est vraiment d'y arriver avec Socket...
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    	protected void doGet(HttpServletRequest Requete, HttpServletResponse Response) throws ServletException, IOException 
    	{ 
    		ServletOutputStream out = Response.getOutputStream();
    		String line;
    		String Host = "xxxxx.free.fr"; 
     
    		InetAddress Adresse = InetAddress.getByName(Host);
     
    		try 
    		{
    			MySocket = new Socket(Host, 80);
    		} catch (UnknownHostException e) 
    		{
    			out.println ("Serveur inconnu : " +  Adresse.toString());
    		} catch (IOException e) 
    		{
    			out.println ("Erreur de connexion au " +  Adresse.toString()) ;
    		} 
     
                    MyQuery = "GET xxxxx.htm HTTP/1.0\r\n";
     
    		PrintWriter out2 = new PrintWriter(new OutputStreamWriter(MySocket.getOutputStream()));
    		BufferedReader in = new BufferedReader(new InputStreamReader(MySocket.getInputStream()));
    		out2.print(MyQuery);
     
    		while((line = in.readLine()) != null)
    		{
    			out2.println(line);
    		}
     
    		//out2.flush();
    		out.println("Terminé pour "+ Adresse.toString());
    		//out.flush();
    	}
    Où est l'erreur ? D'avance merci de votre aide ! J'avoue que je suis assez étonné de voir ma servlet coincée dans son try pendant 30 à 40 secondes alors que ça devrait en prendre une maxi !


    [Modéré par Didier] : ajout de tag dans le titre + ajout de balises code pour la lisibilité - Les règles du forum Java

  2. #2
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    Pouquoi tu n'utilises pas l'objet HttpServletRequest avec sa méthode getHeader(String name) et getHeaderNames() ??? Ca serait bien plus simple / rapide !
    Que la Schtuche soit avec vous !!!

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Oui-Oui MB
    Pouquoi tu n'utilises pas l'objet HttpServletRequest avec sa méthode getHeader(String name) et getHeaderNames() ??? Ca serait bien plus simple / rapide !
    Ah ben ouais ! J'avais lu cette méthode sur un site à l'intention des débutants ! Merci de ton aide, j'vais regarder ça !

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    D'après ce que j'ai pu observer, c'est la lecture dans le while qui fait mayonner mon script

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par sopata
    D'après ce que j'ai pu observer, c'est la lecture dans le while qui fait mayonner mon script
    Ma Socket se connecte bien à mon serveur cible et le get est bien envoyé (je le vois dans les logs de la machine), par contre le readline plante (alors que la page ciblée par le GET écrit "OK\n" dans le body)...

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/04/2009, 14h16
  2. [AS2] lire une entete HTTP
    Par CR_Gio dans le forum Flash
    Réponses: 5
    Dernier message: 18/01/2008, 11h46
  3. [Servlet] Comment détecter la fin d'une session HTTP
    Par cocula dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/04/2005, 17h27
  4. [Servlet] récupérer les champs d'une jsp
    Par phoebe dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 12/05/2004, 16h32
  5. Réponses: 2
    Dernier message: 29/03/2004, 13h44

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