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

Java Discussion :

Réalisation serveur proxy


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut Réalisation serveur proxy
    Salut,

    Je suis en train d'essayer de réaliser un serveur proxy faisant l'intermédiaire entre le serveur web et firefox. Quand par exemple je recois une requête de firefox pour obtenir la page web www.google.fr par exemple, voici le message que le proxy reçoit :
    GET http://www.google.fr/ HTTP/1.1
    Host: www.google.fr
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729; .NET4.0C)
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Proxy-Connection: keep-alive
    Cookie: PREF=ID=2eb999a02aad5d11:U=83588ed7c6363a52:FF=0:TM=1295640754:LM=1295640759:S=dnD6BPlFv53qFpj2; NID=44=bEy4cAEWZ9b2tT3yKfzRVThbktudslhSyVUXAoUz97mNemn9IMEq4lXYbGX43DsW37NeqltVATtKoNG879LIsBhTQrIqqMN4bf6qxHoOMpCN_bCuS53PQkGCUSu5mM4v
    A savoir que pour ci-dessus, chaque ligne de chaque requête se termine par '\r\n" ainsi que pour le dernière ligne.

    Or, quand j'envoie cette requête vers le serveur, ce dernier me répond que la requête est incorrect , code 400.

    Voici la partie de code posant problème :
    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
    System.out.println(url);
    			serverSocket = new Socket(InetAddress.getByName(url), 80);
     
    			printWriterServer = new DataOutputStream(serverSocket.getOutputStream());
    			bufferedReaderServer = new DataInputStream(serverSocket.getInputStream());
     
    			String messageClient = "";
     
    			System.out.println("message du client");
    			for(int i = 0 ; i < requete.size() ; i++){
    				messageClient += requete.get(i);
    				System.out.print(requete.get(i));
    			}
     
    			printWriterServer.writeChars(messageClient);
    			printWriterServer.flush();
     
    			boolean ok = true;
                            //permet d'obtenir premiere ligne recue du serveur
    			while(ok){
    				char c = (char)bufferedReaderServer.read();
    				System.out.println(c);
    				ok = c != '\n';
    			}
    merci

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Points : 511
    Points
    511
    Par défaut
    Bonjour
    une erreur 400 c'est qu'il ne peut pas lire la requete donc le "GET http://www.google.fr/ HTTP/1.1"

    1.il faudrait d'afficher exactement ce qui envoie car rien que "GET http://www.google.fr/ HTTP/1.1" suivi de 2 retours chariots répond correctement (tu peux tester avec un telnet): faire un sysout de messageclient

    2. n'utilise pas les DataInput et ouput stream. Utilise les stream directement vu que tu fait de la lecture octet par octet, ou alors un BufferedReader pour faire des readLine (plus simple)

    3. dans la boucle de concaténation de String, il faut peut-être rejouter les retours chariots si tu les a enlevé avant

    Je dirais vu le code que soit il manque les retours chariots, soit la méthode n'est pas complète à case des DataStream.

    edit:
    10.4.1 400 Bad Request

    The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.
    http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    On ne sait pas comment est construit la liste "requete".

    Ensuite il n'y a aucune gestion de l'encodage.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Réaliser un serveur proxy internet sous win2003 server
    Par ocean_prince11 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 24/11/2007, 21h30
  2. Configurer le serveur Proxy Squid
    Par stkam dans le forum Réseau
    Réponses: 1
    Dernier message: 19/12/2005, 13h12
  3. [plugin] comment passé un serveur proxy ??
    Par champion dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/08/2004, 16h00
  4. [Serveur Proxy] Windows XP PRO suffit-il à lui seul ?
    Par Yoh dans le forum Développement
    Réponses: 3
    Dernier message: 21/05/2003, 11h23
  5. Les serveur proxy socks
    Par berry dans le forum Réseau
    Réponses: 6
    Dernier message: 26/01/2003, 17h56

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