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

Android Studio Java Discussion :

Consommation d'un webservice Soap, qui requiert une identification, avec Android Studio


Sujet :

Android Studio Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Consommation d'un webservice Soap, qui requiert une identification, avec Android Studio
    Bonjour,

    On aimerait développer une application Android, sous Android Studio, qui utilise un webservice Soap. Le problème est que ce webservice, pour être utilisé, requiert une identification. Comment, dans le code, devons-nous gérer cette identification ?

    Merci d'avance de votre aide.

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Il faut savoir de quel type d'authentification il s'agit. Cela peut recouvrir plusieurs notions.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    C'est un sap soap web service où il faut s'authentifier avec un login et un mot de passe.

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Je parle technique : authentification HTTP Basic ? OAuth ? WS Security ? un truc fait maison ?

    Sans connaitre ce détail technique, il est possible de partir sur la bonne solution.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    J'ai compris votre demande. Je vais me renseigner.

  6. #6
    Membre actif Avatar de jmonga
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2014
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 175
    Points : 269
    Points
    269
    Par défaut
    Je pense que c'est une authentification basic.
    Jonathan Monga

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Effectivement, c'est une authentification HTTP Basic.

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 690
    Points : 20 211
    Points
    20 211
    Par défaut
    La gestion de l'authentification va être liée à la librairie que tu vas utiliser pour consommer le webservice.
    Toute doivent en principe gérer l'authentification basic.

    Tu peux aussi sans doute l'inclure directement dans l'adresse de ton webservice. Par exemple https://mon.webservice.com devient https://user:pass@mon.webservice.com

    Note que si le webservice ne propose pas de https il ne faut pas utiliser l'authentification basic puisque les identifiants transitent en clair.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord merci pour vos réponses.

    Je pensais utiliser la librairie ksoap2.

  10. #10
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    C'est cette classe qu'il te faudra utiliser : http://ksoap2.sourceforge.net/doc/ap...BasicAuth.html

    En tapant son nom sur Google, tu trouveras surement plein de tutos.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  11. #11
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    En utilisant cette classe, lorsque je créé l'objet permettant d'avoir le résultat du web service, j'obtiens l'erreur suivante :

    SoapFault - faultcode: 'soap-env:Server' faultstring: 'CX_ST_MATCH_ELEMENT:XSLT exception.Elément 'IvReference' prévu' faultactor: 'null' detail: org.kxml2.kdom.Node@2af5011

    Auriez-vous une idée d'où cela peut venir ?

  12. #12
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Ca ne semble pas être un problème lié à authentification mais plutôt à une faute dans le contenu de l'enveloppe SOAP. Es-tu certaine d'avoir bien passé toutes les données requises au service SOAP ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  13. #13
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Je n'ai qu'une propriété mais celle-ci à un attribut. Elle ressemble à ça : <IdPersonne xmlns="">[string]</IdPersonne>.
    Du coup dans le code je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                PropertyInfo personnePI = new PropertyInfo();
                personnePI.setName("IdPersonne");
                personnePI.setValue("123456");
                request.addProperty(personnePI);
    Est-ce que cela peut venir du fait que je ne mets pas l'attribut de la propriété ?

  14. #14
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    En relisant vos commentaires, je me suis aperçu que je n'utilisais pas la classe HttpTransportBasicAuth comme vous me l'avez conseillé mais AuthTransportSE qui hérite de HttpTransportSE que j'ai trouvé sur internet.
    Voici le contenu de la classe AuthTransportSE

    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
    public class AuthTransportSE extends HttpTransportSE {
        private String username;
        private String password;
     
        public AuthTransportSE(String url, String username, String password) {
            super(url);
            this.username = username;
            this.password = password;
        }
     
        public ServiceConnection getServiceConnection() throws IOException {
            ServiceConnection midpConnection = new ServiceConnectionSE(url);
            addBasicAuthentication(midpConnection);
     
            return midpConnection;
        }
     
        protected void addBasicAuthentication(ServiceConnection midpConnection) throws IOException {
            if (username != null && password != null) {
                StringBuffer buf = new StringBuffer(username);
                buf.append(':').append(password);
                byte[] raw = buf.toString().getBytes();
                buf.setLength(0);
                buf.append("Basic ");
                org.kobjects.base64.Base64.encode(raw, 0, raw.length, buf);
                midpConnection.setRequestProperty("Authorization", buf.toString());
            }
        }
    }
    C'est avec cette classe que j'obtiens l'erreur que je décris plus haut et que je n'arrive pas à résoudre.

    Si j'utilise la classe HttpTransportBasicAuth , que vous m'avez conseillé, j'obtiens l'erreure suivante : java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/microedition/io/Connector

    Du coup, j'ai importé la librairie javax.microedition et du coup j'obtiens cette erreur : java.lang.NoClassDefFoundError: Failed resolution of: Lcom/sun/midp/io/InternalConnector;

Discussions similaires

  1. supprimer une application avec android studio
    Par Negway dans le forum Android Studio
    Réponses: 0
    Dernier message: 04/12/2015, 20h53
  2. Accéder à un webservice qui requiert une authentification
    Par chrysmac2003 dans le forum MATLAB
    Réponses: 0
    Dernier message: 14/02/2013, 11h44
  3. éxecution d'un page.jsp qui contien une image avec l'éclipse
    Par pitchoblack dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/03/2008, 18h45
  4. Un script qui fermerait une page avec chrono ?
    Par beegees dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 31/03/2006, 11h01

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