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

Entrée/Sortie Java Discussion :

Autentification avec HttpURLConnection


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut Autentification avec HttpURLConnection
    Bonjour,
    Je tente de parcourir un site web dont l'accès est protégé par un login / mot de passe.
    Je tente donc d'établir la connexion et de récupérer le contenu de la page qui doit s'afficher juste après avoir saisie les informations de connexion.

    j'ai donc commencé par écrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		try {
    			URL url = new URL("http://....");
    			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    			connection.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64("MonLogin:MonPass".getBytes()));
    			connection.connect();
    			BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    			String line;
    			while ((line = in.readLine()) != null) {
    				System.out.println(line);
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    Cependant cela m'affiche le contenu de la page de login. J'imagine que j'ai soit oublié quelque chose ou tout simplement que je n'ai pas compris comment je devais m'y prendre !

    Mais ou est donc mon erreur ?

    Merci d'avance
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    Cependant cela m'affiche le contenu de la page de login.
    Ce qui me laisse à penser que c'est une authentification par formulaire. Êtes vous sur que le site en question utilise un authentification HTTP Basic?

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    je dois avoué avoir quelques lacunes dans le domaine du web

    j'ai trouvé ceci dans la page de login concernant l'autentification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <div class="formBloc">
    				<fieldset>
    					<legend>Identification</legend>
     
    					<p class="signUp">Accès membre</p>
    						<p><input name="txtEmail" type="text" id="txtEmail" class="pEmail" /><span class="labelEmail">Email</span></p>
    						<p><input name="txtPassword" type="password" id="txtPassword" class="pPass" /><span class="labelPass">Mot de passe</span></p>
    				</fieldset> 
    				<input type="submit" name="btSubmit" value="OK" id="btSubmit" title="OK" class="logIn" />
     
     
     
    			</div>
    J'avoue ne pas savoir comment je dois m'y prendre pour que cela fonctionne.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu dois faire un POST des données du formulaire, rien à voir avec l'authentification http. C'est un formulaire comme un autre (mis à part que pour le serveur ça sert à t'authentifier). Il y a des documents dans la FAQ sur comment soumettre un formulaire avec urlconnection.

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    super merci beaucoup !

    Je vais regarder tout cela et si tout marche je passerais en résolu le sujet
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    J'ai donc récupéré le code suivant :
    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
     
    		OutputStreamWriter writer = null;
    		BufferedReader reader = null;
     
    		try {
    			String donnees = URLEncoder.encode("clef", "UTF-8") + "=" + URLEncoder.encode("login", "UTF-8");
    			donnees += "&" + URLEncoder.encode("autreClef", "UTF-8") + "=" + URLEncoder.encode("motdepass", "UTF-8");
     
    			// création de la connection
    			URL url = new URL("http://...");
    			URLConnection conn = url.openConnection();
    			conn.setDoOutput(true);
     
    			// envoi de la requête
    			writer = new OutputStreamWriter(conn.getOutputStream());
    			writer.write(donnees);
    			writer.flush();
     
    			// lecture de la réponse
    			reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    			String ligne;
    			while ((ligne = reader.readLine()) != null) {
    				System.out.println(ligne);
    			}
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		} finally {
    			try {
    				writer.close();
    			} catch (Exception e) {
    			}
    			try {
    				reader.close();
    			} catch (Exception e) {
    			}
    		}
    Mais je ne sais pas comment connaitre les clés à mettre pour le POST ?
    Comment je peux les trouver ? y il a peut être d'autres clé à mettre en plus du login et du mot de pass !

    Comment savoir l'encodage à utiliser ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des sessions avec HttpURLConnection
    Par hadesthanos dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 16/10/2014, 15h59
  2. Envoi GET et POST avec HttpURLConnection
    Par carton99 dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2013, 15h40
  3. Réponses: 7
    Dernier message: 09/12/2005, 23h26
  4. Autentification Silent Sign-on avec Apache Tomcat et LDAP
    Par jmottet dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 14/10/2005, 10h25
  5. [Sécurité] déconnexion avec l'autentification HTTP
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 11/10/2005, 14h46

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