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

Services Web Java Discussion :

Problème de POST avec HttpsUrlConnection


Sujet :

Services Web Java

  1. #1
    Membre averti
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut Problème de POST avec HttpsUrlConnection
    Bonjour,

    Dans le cadre d'un projet je dois parcourir un site web grâce à une application Java.

    Je me connecte à une page d'authentification grâce à cette fonction :

    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
    /** 
             * Permet de créer une connexion https en acceptant les certificats
             * @param url L'url de la page.
             */
    	public URLConnection httpsConnection(String url)
    	{
    		URLConnection conn = null;
    			try{
    			    //Remplace le vérifieur de nom d'hôte par un autre moins restrictif
    			    HostnameVerifier hostnameVerifier=new HostnameVerifier(){
    			        public boolean verify(String urlHostName,SSLSession session){
    			            return true;
    			        }
    			    };
    			    HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
     
    			    //Remplace le vérifieur de certificat par un autre moins restrictif
    			    TrustManager[] trustAllCerts=new TrustManager[]{
    			        new X509TrustManager(){
    			            public java.security.cert.X509Certificate[] getAcceptedIssuers(){return null;}
    			            public void checkClientTrusted(java.security.cert.X509Certificate[] certs,String authType){}
    			            public void checkServerTrusted(java.security.cert.X509Certificate[] certs,String authType){}
    			        }
    			    };
    			    SSLContext sslContext=SSLContext.getInstance("SSL");
    			    sslContext.init(null,trustAllCerts,new java.security.SecureRandom());
    			    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());            
     
     
    			    //Chargement de la page...
    			    conn = new URL(url).openConnection();
    			    System.out.println("Connexion au serveur ("+url+")...");
     
    			}catch(Exception ex){
    			    System.err.println(ex);
    			}
    			System.out.println("Connexion réussie!");
    			return conn;
    		}
    Puis j'utilise cette fonction pour mon authentification :

    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
    public String loghttps(URLConnection conn, String login, String password) throws Exception
    		{
    			String server ="https://cas.univ-bpclermont.fr/cas/login?service=http://ent.univ-bpclermont.fr/Login";
    			HttpsURLConnection uc =(HttpsURLConnection) new URL(server).openConnection();
    			uc.setDoOutput(true);
    			uc.setRequestMethod("POST");
    			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(uc.getOutputStream()));
    			String query="";
    			query += URLEncoder.encode("username")+ "="+ URLEncoder.encode(login);
    			query +="&";
    			query += URLEncoder.encode("password")+ "=" + URLEncoder.encode(password);
    			bw.write(query);
    			bw.write("\r\n");
    			bw.flush();		
    			bw.close();
     
    			InputStream is = uc.getInputStream();
    			BufferedReader rd = new BufferedReader(new InputStreamReader(is));
    		    String line;
    		    StringBuffer response = new StringBuffer(); 
    		    while((line = rd.readLine()) != null) 
    		    {
    		      response.append(line);
    		      response.append('\r');
    		    }
    		    rd.close();
    		    return response.toString();
    		}
    Je pense que le POST ne fonctionne pas car le texte de la page après le POST est toujours le même qu'avant le post.

    Merci d'éclairer ma lanterne

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 29
    Par défaut
    Bonjour,

    Idem. Après debug, il s'avère que le setRequestMethod("POST") laisse l'attribut method en GET ...

Discussions similaires

  1. Problème Requête POST avec module Request
    Par Lerenn dans le forum Réseau/Web
    Réponses: 0
    Dernier message: 09/05/2013, 00h00
  2. Problème de post avec ADO
    Par colfire_dev dans le forum Bases de données
    Réponses: 2
    Dernier message: 10/12/2007, 00h34
  3. Problème formulaire POST avec SSO
    Par niluge22 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 23/07/2007, 17h35
  4. Réponses: 2
    Dernier message: 10/07/2006, 11h08
  5. [HTTPS] Problème de Post et Get avec Apache et SSL
    Par bartrik dans le forum Apache
    Réponses: 5
    Dernier message: 17/09/2004, 08h37

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