[proxy] Configuration pour navigation avec un proxy
Bonjour,
Voici un bref (et clair je l'espère ^^) exposé de mon problème :
Je suis actuellement en train de développer une petite appli java qui doit permettre de récupérer le code html d'une page web à partir d'une url. Au début cela ne marchais qu'en local et me mettais un connection timeout si j'essayais sur le net... Après quelques recherche je me suis rendu compte que c'était le proxy de ma boite qui me bloquais car pas configuré dans mon programme. nous utilisons un proxy configuré automatiquement au moyen d'un script proxy.pac
J'ai donc éditer ce fichier en .pac, récupéré l'adresse du proxy et son port puis j'ai configuré tout ça dans mon programme comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;
public class main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("http.proxyHost","monProxy");
System.setProperty("http.proxyPort","8088");
String html = new String();
//Chargement du code la page web
html = getIpFrom("url");
System.out.println(html);
String host = "localhost";
int timeout = 3000;
boolean status=false;
try {
//Ping sur une url donnée
status = InetAddress.getByName(host).isReachable(timeout);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(status);
}
public static String getIpFrom(String adresse)
{
String toreturn = null;
try{
//Creation d'un objet URL
URL url = new URL(adresse);
//On établit une connection a cette url
URLConnection uc = url.openConnection();
//On y cree un flus de lecture
InputStream in = uc.getInputStream();
//On lit le premier bit
int c = in.read();
//On cree un string builder pour la suite y ajouter tout les bits lus
StringBuilder build = new StringBuilder();
//Tant que c n'est pas égale au bit indiquant la fin d'un flux...
while(c!=-1)
{
build.append((char)c);
//...On l'ajoute dans le string builder...
c=in.read();
//...et on lit le suivant
}
//On retourn le code de la page
toreturn = build.toString();
}
catch(MalformedURLException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
return toreturn;
}
} |
résultat ça marche très bien pour le web mais du coup cela ne marche plus en local.. :aie:
A noter que c'est l'inverse pour la partie de mon code qui effectue un ping... ça marche en local mais pas sur le net...
Du coup après retour sur le script de configuration du proxy, il apparait que le nom de celui-ci est différent selon l'url que l'on veut... est-il possible de configurer directement mon programme en intégrant le dit script?
Merci d'avance de vos participations :ccool:
edit : lorsque je tente de récupérer le contenue html d'une page en local, voici le message d'erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:520)
at java.net.Socket.connect(Socket.java:470)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:523)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
at sun.net.www.http.HttpClient.New(HttpClient.java:304)
at sun.net.www.http.HttpClient.New(HttpClient.java:321)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:813)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:765)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:690)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:934)
at main.getIpFrom(main.java:46)
at main.main(main.java:20) |