voilà mon problème :
J'ai une application qui doit pouvoir lire des pages web. Il y a une classe bien pratique pour ca en Java : la classe URL. Pour certaines raisons, je ne l'utilise pas : j'ouvre une socket vers le site, je lance ma requete HTTP et je reçois la réponse.
avec un accès direct à internet ca marche impec. Maintenant, je dois pouvoir faire fonctionner mon appli via un proxy.
Avec les recherche que j'ai fait, j'ai vu qu'on pouvait faire ca facilement en ajoutant ces lignes :
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "ip_du_proxy" );
System.getProperties().put( "proxyPort", "80" );
ca marche très bien avec la classe URL, mais quand je passe par des socket ca ne marche plus du tout !!
c'est comme si les sockets n'utilisait pas ces propriétés.
Y a t'il d'autre réglage à faire ou comment communiquer aux socket ces propriétés ???
merci de me venir en aide parce que là, je sèche !
voici mes fichiers de test : Test marche, mais Test2 marche pas !
-------------------------------------------------------------
import java.net.*;
import java.io.*;
public class Test {
public static void main(String[] args) throws Exception {
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "ip_du_proxy" );
System.getProperties().put( "proxyPort", "80" );
URL url = new URL("http://www.yahoo.com" );
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream() ));
String tmp;
while ((tmp = reader.readLine()) != null)
System.out.println(tmp);
}
}
--------------------------------------------------------------
import java.net.*;
import java.io.*;
public class Test2 {
public static void main(String[] args) throws Exception {
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "ip_du_proxy" );
System.getProperties().put( "proxyPort", "80" );
String host = "www.yahoo.com";
int port = 80;
Socket socket = new Socket(host,port);
PrintWriter out;
BufferedReader in;
out = new PrintWriter(socket.getOutputStream());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("GET / HTTP/1.0" );
out.println("User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)" );
out.println("Host: " + host + ":" + port);
out.println("Content-Length: 0" );
out.println("Connection: close" );
out.println("" );
out.flush();
String line;
while ((line = in.readLine()) != null)
System.out.println(line);
in.close();
out.close();
socket.close();
}
}
---------------------------------------------
remarque : j'ai vérifié la requete HTTP, elle est bonne (j'arrive à accéder à des web locaux juste en changeant la variable host)