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 :
A savoir que pour ci-dessus, chaque ligne de chaque requête se termine par '\r\n" ainsi que pour le dernière ligne.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
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 :
merci
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'; }
Partager