Bonjour tous le monde
j'ai troué un petit programme de proxy http en java, mais ne retourne pas la résultat, il retourne juste la reponse de l'en-tête http, voici le programme :
--------------------------------------
import java.io.*;
import java.net.*;
class OneServeur extends Thread{
private Socket socket, socketToWeb;
private BufferedReader fromBrowser;
private PrintWriter toBrowser;
private PrintWriter toWeb;
private BufferedReader fromWeb;
public OneServeur(Socket s) throws IOException {
socket = s;
fromBrowser = new BufferedReader(
new InputStreamReader (
socket.getInputStream()));
toBrowser = new PrintWriter( new BufferedWriter (
new OutputStreamWriter (
socket.getOutputStream())),true);
start();
}
public void run() {
try {
String str, targetHost="", httpHeader="";
while(true) {
str = fromBrowser.readLine();
httpHeader += str + "\n";
if ( str.startsWith("Host: " ) ) targetHost = str.substring(6);
if ( str.length() == 0 ) break;
}
//socketToWeb = new Socket(InetAddress.getByName(targetHost),80);
socketToWeb = new Socket(
InetAddress.getByName(targetHost),80);
System.out.println(socketToWeb);
fromWeb = new BufferedReader(
new InputStreamReader (
socketToWeb.getInputStream()));
toWeb = new PrintWriter( new BufferedWriter (
new OutputStreamWriter (
socketToWeb.getOutputStream())),true);
System.out.println("-> -> -> -> -> -> -> \n" + httpHeader);
toWeb.println(httpHeader);
boolean echoing = true;
while ( true ) {
str = fromWeb.readLine();
if ( str == null ) break;
if ( str.length() == 0 ) echoing = false;
if( echoing ) System.out.println(str);
toBrowser.write(str);
}
System.out.println("\nclosing ...");
} catch ( IOException e) {
} finally {
try {
socket.close();
} catch ( IOException e ) {}
}
}
}
------------------------------------------------
voici le resultat qui m'a donner :
Started ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=12345]
connection acceptee Socket[addr=/192.168.0.7,port=1523,localport=12345]
Socket[addr=www.google.fr/66.249.93.147,port=80,localport=35059]
-> -> -> -> -> -> ->
GET / HTTP/1.1
Host: www.google.fr
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
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: 300
Connection: keep-alive
Cookie: GPC=FW=0:GHV=2:MGLS=0:MGV=0:SG=0:TE=0:TS=0:TV=0:WCYD=0:SIG=knL9H0E5R8onR5e1; PREF=ID=60b983ba303f9e1e:TB=4:LD=fr:NR=100:TM=1203686163:LM=1207734861:S=4R40Q4i3iomrmRJD; GDSESS=ID=60b983ba303f9e1e:EX=1207825110:S=H0eaQ8x-pzEdekJe; S=sorry=-td9FggEbhej8Ic1Ga3Icg; BX=38hlknh40ce55&b=3&s=lb
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Server: gws
Content-Length: 2740
Date: Thu, 17 Apr 2008 11:19:35 GMT
closing ...
si qlq voir où le problème, qu'il m'aide, et merci