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

Entrée/Sortie Java Discussion :

Aide pour creer proxy http


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut Aide pour creer proxy http
    Bonjour a tous,
    Je dois realiser un proxy http en java en utilisant les sockets.
    Je recupere l'entete du browser(je sais pas si ca s'appele comme ca ) puis je le transmet au serveur web.
    Puis je recupere l'entete du serveur ainsi que le message.
    Premier probleme:
    Si le serveur ne m 'envoie pas la longueur du message("Content-Length: "),
    comment puis-je savoir ou je dois m'arreter de lire??
    J'ai essaye plusieur metode:
    -tampon!=null
    -tampon.equals("0"))
    Cela ne marche pas tout le temps.
    tampon est un string (tampon=in.readLine()).

    Second probleme(mais pas fondamental puisque je n'arrive pas a recuperer les messages de tous les sites web):

    Je dois realiser un cache.
    Donc quand je recupere le message du serveur,je l'enregistre dans un fichier.
    Le probleme est dans quel format je dois l'enregistrer?


    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Salut bein pour lire un flux ligne par ligne jusqu'à la fin tu dois faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String buffer = "";
    while ( (buffer = in.readLine()) != null) { // Tu met la ligne que tu viens de lire dans ta variable buffer et tu tests sa nullité.
         // ce que tu dois faire.
    }
    Voilà de tête c'est ce code la.
    Après pour connaitre le type du fichier le serveur doit te renvoyer un header Content-Type (de tête aussi donc a verifier sur la rfc http) qui te permet de savoir (text, png, jpeg, ...).

    Voilà a+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    Merci pour ta reponse,
    Pour mon premier probleme ,c'est regle: j' ai utilise la methode read( char[])!=-1 et ca marche bien.
    Je regarderais le rfc http pour le cache.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    Bonsoir,
    Si ca bloque dans cette instruction:

    while ( (buffer = in.readLine()) != null)

    Quel est le probleme??
    Est ce que la socket est fermee??

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 33
    Par défaut
    Si le socket était fermé, il y aurais une exception (IOException). je pense que ça bloque tout simplement parce que le serveur Web tarde dans l'envoi de sa réponse.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    Bonjour,
    J'ai toujours le probleme pour recuperer le message du serveur si dans l entete je n'ai pas la longueur du message.
    J'ai essaye ses 2 methodes mais aucune ne marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while( true )
    	{
    	tampon=fromServer.readLine();
    	if(tampon== null) break;
    	message+=tampon+"\r\n";
     
    	}
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while( fromServer.read(c,0,1)!=-1)
      {
    lu+=1;
    message+=c[0];
    }

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Quel flux utilise tu pour récupérer les données?

    Il me semble que certains flux bloquent tant qu'il n'y a pas de données.
    Sinon je me souviens d'une fonction avalaible () qui te renvoie le nombre de byte qui peuvent encore être lus, après je c'est plus trop où c'était...cherche dans la javadoc ca doit être marqué.

Discussions similaires

  1. Demande d'aide pour creer un aggregate
    Par JUSTIN Loïc dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 12/11/2010, 15h42
  2. Aide pour creer un site web
    Par lloydboy dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 25/04/2007, 04h23
  3. Réponses: 3
    Dernier message: 01/02/2007, 20h05
  4. [Debutant] Aide pour creer une classe image
    Par skwi6 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 08/10/2006, 13h37

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