Pb de config avec httpURLConnexion

cs_nicofunky Messages postés 3 Date d'inscription mercredi 28 juin 2006 Statut Membre Dernière intervention 3 juillet 2006 - 3 juil. 2006 à 11:49
EaglesEyes Messages postés 33 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 27 février 2008 - 13 juil. 2006 à 16:43
Bonjout,
J'écris un crawler en java pour aller récupérer directement des fichiers sur internet. Mais je ne sais pas pourquoi, sur certains pc (windows) je n'arrive pas à me connecter. Voila le code :

  HttpURLConnection connection = (HttpURLConnection)url.openConnection();
  int responseCode = connection.getResponseCode();
  String contentType = connection.getContentType();
  // Note: contentLength == -1 if NOT KNOWN (i.e. not returned from server)
  int contentLength = connection.getContentLength();
//objet a moi 
 PageInfo p = new PageInfo(url,parentUrl,contentType,contentLength,responseCode);
  InputStreamReader rdr =
   new InputStreamReader(connection.getInputStream());
//parsing de la page html  
p.extract(rdr);
  rdr.close();
  connection.disconnect();

Il arrive bien a faire url.openConnection(), mais il plante juste aprés en me sortant une IllegalArgumentException. J'ai cru comprendre qu'il peut s'agir d'un problème de configuration de proxy ou je ne sais quoi. Mais j'y comprends pas grand chose...
Comment marche les instructions du genre :

System.setProperty( "proxySet", "true" );
System.setProperty( "http.proxyHost", "..." );

et est ce que mon pb vient de là? Merci beaucoup d'avance!

1 réponse

EaglesEyes Messages postés 33 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 27 février 2008
13 juil. 2006 à 16:43
Salut
Bon pour un projet j'ai du faire une connexion par proxy mais je ne sais pas si ça t'aideras mais qui sait...

Voila la class te permettant de demander le port et l'adresse du proxy:

package com.daedric.net;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class configProxy {
        private JFrame frameProxy;
        private JPanel typeConnexion;
        private JRadioButton modem;
        private JRadioButton HTTP;
        private JButton ok;
        private static String type;
        private static String proxy;
        private static int port;

    //constructeur de la classe : elle prend pour argument une chaine de caractere....
    public configProxy() {
        frameProxy = new JFrame("Configuration du proxy");
        typeConnexion = new JPanel();
        modem = new JRadioButton("Modem");
        HTTP = new JRadioButton("HTTP");

        ok = new JButton("OK");
        ok.setSize(new Dimension(10,10));

        Container c = frameProxy.getContentPane();

        frameProxy.setLayout(new GridLayout(3,1));

        typeConnexion.add(modem);
        typeConnexion.add(HTTP);

        modem.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(modem.isSelected()){
                    HTTP.setSelected(false);
                }
            }
        });

        HTTP.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(HTTP.isSelected()){
                    modem.setSelected(false);
                }
            }
        });

        ok.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(HTTP.isSelected()){
                    type = new String("HTTP");
                    proxy = (String)JOptionPane.showInputDialog(null ,"Proxy:");
                    port = Integer.parseInt((String)JOptionPane.showInputDialog(null ,"Port n°:"));
                    frameProxy.setVisible(false);
                }
                else{
                    type = new String("Modem");
                    frameProxy.setVisible(false);
                }
            }
        });

        c.add(new JLabel("Type de connexion"));
        c.add(typeConnexion);
        c.add(ok, BorderLayout.SOUTH);
       
        frameProxy.setVisible(true);
        frameProxy.pack();
    }

    public static String getType(){
        return type.toString();
    }

    public static int getPort(){
        return port;
    }

    public static String getProxy(){
        return proxy.toString();
    }
}

et voila le code pour configurer la connexion selon le choix proxy HTTP ou modem classique:

if(configProxy.getType().equals("HTTP"))
{
            uc = u.openConnection(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(configProxy.getProxy(), configProxy.getPort())));
}
else
{
            uc = u.openConnection();
}

En espérant que ça pourra t'aider...

Eagles Eyes
0
Rejoignez-nous