IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Connexion à un site nécessitant un login via un formulaire


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 26
    Points : 19
    Points
    19
    Par défaut Connexion à un site nécessitant un login via un formulaire
    Bonjour,

    Tout est dit ou presque dans le titre.

    Je dois me connecter sur un site avec un login/mdp via un formulaire.

    J'ai récupérer les bons noms d'input.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    import java.io.*;
    import java.net.*;
     
    public class test {
     
    final static String login = "login";
            final static String password = "passwd";
     
            public static void main (String args[]){
                    try
                    {
     
                            URL url = new URL("https://mon url");
                            HttpURLConnection uc = (HttpURLConnection) url.openConnection();
     
                            uc.setRequestMethod("POST");
                            uc.setDoInput(true);
                            uc.setDoOutput(true);
                            uc.setUseCaches(false);
                            uc.setAllowUserInteraction(true);
                            uc.setFollowRedirects(true);
                            uc.setInstanceFollowRedirects(true);
                            uc.setRequestProperty("content-type-Type", "text/html; charset=iso-8859-1");
                            DataOutputStream out = new DataOutputStream(uc.getOutputStream());
                            String content = "loginname=" + login + "&password=" + password;
                            System.out.println(content + "\n" + "sending form to HTTP server ...");
                            out.writeBytes(content);
                            System.out.println(uc.getPermission());
     
                            out.flush();
                            out.close();
                            BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
                    } catch (IOException e) {
                            e.printStackTrace();
                    }
     
            }
    }
    Voici l'erreur que j'obtiens :
    java.net.ConnectException: Connection refused
    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:518)
    at java.net.Socket.connect(Socket.java:468)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
    at sun.net.http://www.http.HttpClient.openServe...lient.java:389)
    at sun.net.http://www.http.HttpClient.openServe...lient.java:516)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:271)
    at sun.net.http://www.protocol.https.HttpsClien...lient.java:328)
    at sun.net.http://www.protocol.https.AbstractDe...ction.java:172)
    at sun.net.http://www.protocol.http.HttpURLConn...ction.java:729)
    at sun.net.http://www.protocol.https.AbstractDe...ction.java:158)
    at sun.net.http://www.protocol.http.HttpURLConn...ction.java:832)
    at sun.net.http://www.protocol.https.HttpsURLCo...nImpl.java:230)

    Merci pour votre aide,

    Clémence

  2. #2
    Membre actif
    Avatar de David Gimelle
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 79
    Points : 221
    Points
    221
    Par défaut
    Bonjour,

    Tu cherches a te connecter sur un serveur https. Il faudrait donc plutot utiliser HttpsURLConnection plutot que HttpURLConnection.

    http://java.sun.com/j2se/1.4.2/docs/...onnection.html

    David Gimelle
    Developpeur J2EE
    http://getj2ee.over-blog.com
    David Gimelle
    Développeur J2EE - Scrum Master
    Organisateur de http://www.soft-shake.ch/
    Blog: http://getj2ee.over-blog.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Merci pour ta réponse, effectivement c'est un bon début.
    J'ai donc recommencé mon bout de code en prenant en compte ta remarque :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    import java.io.*;
    import java.net.*;
    import javax.net.ssl.*;
     
    public class ConnectSiteTest {
     
    	final static String login = "login";
    	final static String password = "passwd";
     
    	public static void main (String args[]){
    		try
            {
    			URL u = new URL("https://monsite/");
    			HttpsURLConnection https = (HttpsURLConnection) u.openConnection();
    			https.setRequestMethod("POST");
    			https.setRequestProperty("Content-Type","application/x-www-form-urlencoded" );
    			https.setDoOutput(true);
    			https.setDoInput(true);
     
    			https.connect();
     
    			String content = "loginname=" + login + "&password=" + password;
    			OutputStreamWriter out = new OutputStreamWriter(new BufferedOutputStream(https.getOutputStream()),"885 9_2");
    			out.write(content, 0, content.length());
     
    			https.disconnect();
     
                out.flush();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
     
    	}
    }

    Et j'ai toujours ce message d'erreur :

    java.net.ConnectException: Connection refused
    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:518)
    at java.net.Socket.connect(Socket.java:468)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
    at sun.net.http://www.http.HttpClient.openServe...lient.java:389)
    at sun.net.http://www.http.HttpClient.openServe...lient.java:516)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:271)
    at sun.net.http://www.protocol.https.HttpsClien...lient.java:328)
    at sun.net.http://www.protocol.https.AbstractDe...ction.java:172)
    at sun.net.http://www.protocol.http.HttpURLConn...ction.java:729)
    at sun.net.http://www.protocol.https.AbstractDe...ction.java:158)
    at sun.net.http://www.protocol.https.HttpsURLCo...nImpl.java:133)
    at com.tripvisit.url.ConnectBookingSiteTest.main(ConnectBookingSiteTest.java:22)



    C'est le bon login, le bon mot de passe, là je suis un peu perdue....

    Merci à ceux qui auront une réponse,

    Clémence

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    J'ai finalement réussi à me connecter à mon site en passant par pas mal de galères, je ferai surement une synthèse pour aider des gens à l'occasion

    Bref, je vais vous solliciter pour une dernière question.

    Une fois sur ce site, je dois uploader un fichier excel ou csv...et là, je n'arrive pas à lire les informations du fichier.

    Comment puis-je faire? Pour l'instant je me bats avec les inputstream...

    Merci!

    Clémence

Discussions similaires

  1. connexion a un site internet sur IE via VBA excel
    Par deubelte dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/07/2008, 12h16
  2. Réponses: 1
    Dernier message: 16/05/2008, 09h20
  3. Connexion à un site avec login
    Par Pierre845 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 21/04/2008, 01h12
  4. [cURL] Connexion à un site qui nécessite un certificat
    Par PaNTi dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 31/08/2007, 16h32
  5. Réponses: 9
    Dernier message: 30/08/2006, 00h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo