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

API standards et tierces Android Discussion :

Accéder aux services Web via Android [Tutoriel]


Sujet :

API standards et tierces Android

  1. #1
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut Accéder aux services Web via Android
    Bonjour,

    acesyde vous présente un nouveau tutoriel intitulé:

    Accéder aux services Web via Android
    http://Acesyde.developpez.com/tutori...vices-android/

    Ce tutoriel a pour but de vous présenter l'utilisation des services Web sous Android.
    Bonne lecture.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Salut !
    Voila un tutoriel qui manquait...

    Juste quelques remarques en vrac:
    • Non gestion de l'encoding de la réponse (en particulier le charset). Quid de UTF-8 ?
    • Disparition complète de la dernière exception après un Log.e, il faudrait passer l'exception en paramètre. A ce sujet, le return null pour signifier à l'appelant de getPoints() qu'une erreur est survenue est un peu trop léger... mais bon pourquoi pas.
    • L'InputStream n'est pas correctement géré (c'est une ressource, donc avoir son try { } finally { } en attendant Java7 et le try-with).
    • Dans certains cas (réponse en 401 par exemple), InputStream est null, il n' y a aucune raison du pourquoi ou du comment. Aucune exception n'est levée. sendRequest() et getPoints() retournent simplement null.
    • Seule une réponse 200 est acceptée... quid des réponses 201, 202, ... ?
    • La fonction sendRequest() envoie des "Exception", n'est-ce pas un peu "large" ? IOException serait plus approprié non ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 44
    Points
    44
    Par défaut
    Salut, une petite remarque : sauf modification récente, il me semblait que sous Android et ce depuis la version 3.x, il était impossible de faire une requête vers l'extérieur (réseau) sans threader la procédure ou sans utiliser le StrictMode (à destination des développeurs), ce qui est compréhensible en terme de séparation du rendu écran et des process en arrière plan qui, dans le cas de l'accès à un webservice, peuvent prendre du temps. Si c'est toujours le cas, il me semble que ce serait une bonne chose d'y faire référence, si ce n'est de modifier les sources présentées, qui correspondent à du code Java, n'ayant implicitement rien à voir avec Android (à part les Log.x). On peut en effet utiliser le code présenté directement si son utilisation est threadée, mais je pense que cela peut perdre les gens de ne pas en parler du tout (c'est du vécu, passage 2.x à 3.x douloureux en terme d'utilisation de webservice ).

  4. #4
    Membre éclairé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 70
    Points : 681
    Points
    681
    Par défaut
    @nicroman
    Merci pour tes remarques.
    J'ai voulu faire au plus simple pour éviter de perdre le lecteur, "UTF-8", gestion des erreurs etc... on a vite fait de noyer un paragraphe avec
    Mais c'est vrai que c'est une partie importante que j'aurais du traiter pour forcer les bonnes habitudes.

    @DrSnake
    Je n'ai pas mis la partie Frontale de l'application, juste le traitement de la connexion et de la réponse, bien entendu dans le CS il y a une AsyncTask.

    A l'avenir je rajouterais des compléments dans les tutoriaux suite à vos remarques.

    Merci

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par DrSnake Voir le message
    Salut, une petite remarque : sauf modification récente, il me semblait que sous Android et ce depuis la version 3.x, il était impossible de faire une requête vers l'extérieur (réseau) sans threader
    Non c'était déjà interdit dans Android 1.x, mais comme certains développeurs ne comprenaient pas comment fonctionnent une UI (ou s'en foutaient royalement), à partir de 3.0 le système a commencé à émettre des exceptions... (un peu comme sur Windows, ou les programmes écrivaient leurs données dans program files).
    Le StrictMode est une catastrophe de programmation et permet juste de remplacer le "application closed" par un éventuel "ANR" (à mon avis pire encore que le forced-closed, il n'y a rien de plus gavant qu'un téléphone qui ne réponde pas).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    bonjour, votre tutoriel: http://acesyde.developpez.com/tutori...vices-android/ est probablement ce rapprochant le plus de ce que je souhaiterai faire:

    Placer les images dans le dossier /assets de ton projet, puis attaques la partie code :
    1) Récupères via HttpClient le code HTML de ton serveur comme une grosse chaîne de caractère
    2) Appliques un traitement sur cette chaîne pour remplacer tout les chemins du serveur par leur équivalent local. Exemple : <img src="logo.png"/> devient <img src="file:///android_asset/logo.png"/>
    3) Procède au rendu graphique de cette chaîne via une WebView : webView.loadDataWithBaseURL(null, la_grosse_chaine_html, "text/html", "utf-8",null);


    mais je suis débutant, et je ne connais pas le langage enfin depuis une semaine je m'y suis mis mais bon je galère
    hors dans votre tuto vous proposer une annexe ou il y a ce que vous avez fait dans le tuto mais le lien n'est plus accessible.
    pourriez-vous le remttre d'actualité pour me l'envoyer: qdavenne@gmail.com

    PS: dans l'eventualité pour vous avec un peu de temp a m'accorder et que cela ne vous pose ni difficulté ni une perte de temp considerable pourriez-vous rajouter les lignes de code qui manque pour que l'appli puisse etre opérationel .
    merci d'avance cordialement

  7. #7
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    ¨Pour cela il faut que tu vois directement avec l'auteur tu peux le contacter par Message Privé.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  8. #8
    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
    Le tutoriel a 3 ans. Tu peux consulter un équivalent ici (avec code source téléchargeable) : http://olegoaer.developpez.com/tutos...e/android/rpc/

    Mais je ne t'ai pas donné le lien car tu n'es pas dans le cas d'un appel de webservice (ou alors dans une forme extrêmement simpliste). Tu as juste à récupérer le source de la page web distante avec HttpURLConnection.

    Personne ne le fera à ta place car cela nécessite du temps. Je t'ai déjà bien guidé avec ces 3 étapes clés. Si tu bloques encore, c'est que tu n'es pas assez formé. Entraînes-toi d'abord sur des choses plus simple et continues ton projet ensuite.
    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

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    oui merci je vais apprendre le langage depuis le debut je pense ^^ quand meme

Discussions similaires

  1. Comment sur le LAN accéder aux services Web avec IP privée?
    Par guygox dans le forum Développement
    Réponses: 4
    Dernier message: 25/09/2012, 08h52
  2. comment accéder à un service web wsdl via JavaScript
    Par berber5 dans le forum Services Web
    Réponses: 2
    Dernier message: 13/06/2012, 15h05
  3. [C#] Accéder à un service web via SOAP
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/05/2006, 18h07
  4. [WebForms][2.0]Accéder aux élément DropDownlist via Javascript
    Par steelidol dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 21/10/2005, 15h01

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