J'ai beaucoup de mal à trouver de bonnes informations sur la façon d'appeler un service Web SOAP / WSDL standard avec Android. Tout ce que j'ai pu trouver, ce sont soit des documents très compliqués et des références à "kSoap2", puis un peu d'analyse syntaxique manuelle avec SAX . D'accord, c'est bien, mais c'est 2008, donc je me suis dit qu'il devrait y avoir une bonne bibliothèque pour appeler les services Web standard.
Le service Web est simplement un service créé dans NetBeans . J'aimerais avoir le support IDE pour générer les classes de plomberie. J'ai juste besoin du moyen le plus simple / le plus élégant pour contacter un service Web basé sur WSDL à partir d'un téléphone basé sur Android.
Réponses:
Android ne fournit aucune sorte de bibliothèque SOAP. Vous pouvez soit écrire le vôtre, soit utiliser quelque chose comme kSOAP 2 . Comme vous le constatez, d'autres ont pu compiler et utiliser kSOAP2 dans leurs propres projets, mais je n'ai pas eu à le faire.
À ce jour, Google a montré peu d'intérêt à ajouter une bibliothèque SOAP à Android. Je soupçonne qu'ils préfèrent soutenir les tendances actuelles des services Web vers des services basés sur REST et utiliser JSON comme format d'encapsulation des données. Ou, en utilisant XMPP pour la messagerie. Mais ce n'est qu'une conjecture.
Les services Web basés sur XML sont une tâche légèrement non triviale sur Android pour le moment. Ne connaissant pas NetBeans, je ne peux pas parler des outils disponibles, mais je conviens qu'une meilleure bibliothèque devrait être disponible. Il est possible que XmlPullParser vous évite d'utiliser SAX, mais je n'en sais pas grand-chose.
la source
org.apache.http.impl.client.DefaultHttpClient
vient dans le SDK Android par défaut. Cela vous permettra de vous connecter au WSDL.la source
Il est vrai qu'en raison de ses frais généraux, SOAP n'est pas le meilleur choix pour l'échange de données avec des appareils mobiles. Cependant, vous pourriez vous retrouver dans une situation dans laquelle vous ne contrôlez pas le format de sortie du serveur.
Donc, si vous devez vous en tenir à SOAP, il existe une bibliothèque kSOAP2 corrigée pour Android ici:
http://code.google.com/p/ksoap2-android/
la source
Pour appeler un service Web à partir d'un appareil mobile (en particulier sur un téléphone Android), j'ai utilisé un moyen très simple de le faire. Je n'ai utilisé aucune API cliente de service Web pour essayer d'appeler le service Web. Mon approche est la suivante pour passer un appel.
HttpURLConnection
.getResonseCode
).ErrorInput
flux sur le même objet HTTP et recevez l'erreur, le cas échéant.J'ai implémenté cette procédure pour le téléphone Android et il fonctionne correctement. Je peux analyser la réponse même si elle est supérieure à 700 Ko.
la source
SOAP est une technologie mal adaptée à une utilisation sur Android (ou sur les appareils mobiles en général) en raison de la surcharge de traitement / analyse requise. Un service REST est une solution plus légère et c'est ce que je suggère. Android est livré avec un analyseur SAX, et il est assez simple à utiliser. Si vous devez absolument manipuler / analyser SOAP sur un appareil mobile, je suis désolé pour vous, le meilleur conseil que je puisse offrir est simplement de ne pas utiliser SOAP.
la source
Il y a environ un an, je lisais ce fil en essayant de comprendre comment faire des appels SOAP sur Android - les suggestions pour créer la mienne en utilisant HttpClient m'ont amené à créer ma propre bibliothèque SOAP pour Android:
IceSoap
Fondamentalement, il vous permet de créer des enveloppes à envoyer via une simple API Java, puis de les analyser automatiquement en objets que vous définissez via XPath ... par exemple:
Devient:
Je l'utilisais pour mon propre projet, mais je pensais que cela pourrait aider d'autres personnes, alors j'ai passé un peu de temps à le séparer et à le documenter. J'adorerais vraiment que certaines de vos pauvres âmes qui tombent sur ce fil en recherchant "SOAP Android" puissent essayer et obtenir des avantages.
la source
la source
J'ai eu mon rendez-vous avec KSOAP; J'ai choisi une approche plutôt simple.
Étant donné un fichier WSDL, créez des modèles de demande SOAP pour chaque demande (par exemple: en utilisant l'interface utilisateur SOAP), puis remplacez les valeurs à transmettre dans le code. POSTEZ ces données au point de terminaison du service à l'aide de l'instance DefaultHttpClient et obtenez le flux de réponse. Analyser le flux de réponse à l'aide d'un analyseur XML Pull.
la source
Vous pouvez jeter un œil à WSClient ++
la source
J'ai créé un nouveau client SOAP pour la plateforme Android. Il utilise une interface générée par JAX-WS, mais ce n'est pour l'instant qu'une preuve de concept.
Si vous êtes intéressé, essayez l'exemple et / ou regardez la source sur AndroidSOAP .
la source
Si vous le pouvez, optez pour JSON. Android est livré avec le package org.json complet
la source
Appelez les méthodes ksoap2 . Cela fonctionne très bien.
Configurez les détails, comme
puis pour obtenir le résultat faire
la source
J'espère qu'appeler un service Web depuis Android vous aidera.
la source
Il y a quelques mois, je travaillais avec le service Web jax-ws dans l'application j2ee. Là, nous utilisions CXF wsdl2java pour générer le stub client WS à partir du fichier WSDL et avec ces stubs client, nous consommions les services web. Il y a quelques semaines, lorsque j'essayais de consommer le service Web de la même manière sur la plate-forme Android, je ne pouvais pas, car le pot Android ne contient pas toutes les classes de support "jax-ws". Cette fois, je n'ai pas trouvé un tel outil (si je n'ai pas échoué à google efficacement) pour répondre à mes besoins -
J'ai donc développé mon propre outil de génération de clients SOAP Android . Où vous devez suivre ces étapes:
par exemple:
la source
Je suis sûr que vous pourriez créer un petit client SOAP avec Axis . Instructions d'installation de l'axe .
la source
Je pense que Call SOAP Web Service à partir de l'application Android vous aidera beaucoup.
la source
Suivez ces étapes par la méthode SOAP
À partir du fichier WSDL,
créer des modèles de demande SOAP pour chaque demande.
Remplacez ensuite les valeurs à transmettre dans le code.
POSTEZ ces données au point de terminaison du service à l'aide de l'instance DefaultHttpClient.
Obtenez le flux de réponse et enfin
Analyser le flux de réponse à l'aide d'un analyseur XML Pull.
la source
Si vous pouvez utiliser JSON, il y a un livre blanc, une vidéo et le sample.code dans Developing Application Services with PHP Servers and Android Phone Clients .
la source
Pour moi, le moyen le plus simple est d'utiliser un bon outil pour générer toutes les classes requises. Personnellement j'utilise ce site:
http://easywsdl.com/
Il prend en charge des services Web assez complexes et utilise ksoap2.
la source
Je suggère de consulter un outil très utile qui m'a beaucoup aidé. Les gars qui s'occupent de ce projet ont également été très utiles. www.wsdl2code.com/
la source
Si vous rencontrez des problèmes pour appeler le service Web dans Android, vous pouvez utiliser le code ci-dessous pour appeler le service Web et obtenir une réponse. Assurez-vous que votre service Web renvoie la réponse au format Data Table .. Ce code vous aidera si vous utilisez des données de la base de données SQL Server . Si vous utilisez MYSQL, vous devez changer une chose, il suffit de remplacer le mot NewDataSet de la phrase
obj2=(SoapObject) obj1.getProperty("NewDataSet");
par DocumentElementSi vous avez un problème à ce sujet, vous pouvez m'écrire ..
la source
Veuillez télécharger et ajouter le fichier de bibliothèque SOAP avec votre projet Nom du fichier: ksoap2-android-assembly-3.4.0-jar-with-dependencies
Nettoyez l'application, puis démarrez le programme
Voici le code pour l'appel de service SOAP
Les résultats peuvent être JSONObject ou JSONArray Or String
Pour votre meilleure référence, https://trinitytuts.com/load-data-from-soap-web-service-in-android-application/
Merci.
la source
Ceci est un exemple pratique de consommation de services Web SOAP dans Android.
** Remarque :: *** N'OUBLIEZ PAS D'AJOUTER ksoap2.jar dans votre projet et ajoutez également l'autorisation INTERNET dans le fichier AndroidManifest *
la source
Vous pouvez effectuer un appel de savon en tant que publication sur http avec certains en-têtes. J'ai résolu cette question sans bibliothèques supplémentaires comme ksoap2 Voici le code en direct recevant les commandes du service soap
la source
Pour appeler un service Web SOAP à partir d'Android, essayez d'utiliser ce client
N'OUBLIEZ PAS D'AJOUTER ksoap2-android.jar dans votre chemin de build java
la source
Ajouter du savon Libaray (
ksoap2-android-assembly-3.2.0-jar-with-dependencies.jar
):public static String Fn_Confirm_CollectMoney_Approval (
la source