FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV Mobile 2024
→
Sur android, Pb requete soap xml avec entete et un body xml mais ne fonctionne pas
Sur android, Pb requete soap xml avec entete et un body xml mais ne fonctionne pas
Débuté par dominique, 03 déc. 2018 02:33 - 4 réponses
Connectez-vous…
dominique
#1
Posté le 03 décembre 2018 - 02:33
Dans PostMan, j'exécute une requête soap et tout se passe bien, il me créé bien mon enregistrement sur mon système qui contient le webservice.
J'appelle à une url du type :
http://monadresseip:8085/Proxy.ashx/soap/Page/CustomerCard
avec un entete du type :
Authorization ZKJKJMLLUIUEJDNCCFFTjZDI1ZTQ4OTYx
SOAPAction Create
Content-Type application/xml
et un body exemple du type :
<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/
" xmlns:wor="urn:microsoft-dynamics-schemas/page/CustomerCard">
<soapenv:Header/>
<soapenv:Body>
<wor:Create>
<wor:CustomerCard>
<cust_Description>My new customer test</cust_Description>
</wor:CustomerCard>
</wor:Create>
</soapenv:Body>
</soapenv:Envelope>
Comment je fais pour exécuter correctement cette requête sous Android avec Windev mobile 23 ?
J'ai essayé avec httprequête mais sans succès, il me dit "bad request". alors que sous PostMAN ou SoapUI, cela fonctionne bien, le système me renvoie un xml avec la création d'un client et son numéro.
Je ne peux pas voir ce qui est envoyé au serveur,
Si quelqu'un a un exemple de code avec l'envoie des header et d'un body xml
Merci !
Dominique
Signaler
0
0
Jérôme
#2
Membre enregistré
179 messages
Popularité : +17 (17 votes)
Posté le 04 décembre 2018 - 17:08
Bonjour Dominique,
il faut procéder de la manière suivante :
- Créer une configuration "iOS"
- Créer un test avec les types wsRequête et wsRéponse (
https://doc.pcsoft.fr/fr-FR/?1000020577
/
https://doc.pcsoft.fr/fr-FR/?1000020568
)
Le type wsRequête permet de regarder ce qui est envoyé au serveur et éventuellement de le corriger en fonction de ce qui est vu via SoapUI ou Postman.
Une fois que ça fonctionne, tester le même code sous Android en enlevant les types wsRequête et wsRéponse.
Jérôme
Signaler
0
0
dominique
#3
Posté le 05 décembre 2018 - 05:25
Bonjour Jérome,
Merci pour la réponse.
Mais ensuite sur android comment remplacer les types wsrequetes et wsreponse qui ne fonctionnent qu'avec IOS ? pour que le code fonctionne
Je fais sur android le code suivant :
mais j'ai un résultat qui passe dans le info(rescode) mais il affiche un html avec un runtime error
et il ne créé pas l'enregistrement.
Alors qu'avec le meme body et les memes header dans postman ou Soap UI ca passe
Merci !
Dominique
sUrlServeurSOAP est une chaîne
sLogin est une chaîne
sPassword est une chaîne
sUrlServeurSOAP= "
http://xxx.xxxip:Port/Proxy.ashx/soap/Page/CustomerCard
"
sXMLSoap est une chaîne
sXMLSoap += [
<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/
" xmlns:wor="urn:microsoft-dynamics-schemas/page/customercard">
<soapenv:Header/>
<soapenv:Body>
<wor:Create>
<wor:CustomerCard>
<wor:Description>Test description</wor:Description>
</wor:CustomerCard>
</wor:Create>
</soapenv:Body>
</soapenv:Envelope>
]
sMyheader est une chaîne
sMyheader = "Authorization: ZGFjOTk0YmEtZjVjYi00OTI3LTblablabla ; SOAPAction: Create"
SI PAS HTTPRequête(sUrlServeurSOAP,"",sMyheader,sXMLSoap,"text/xml","","") ALORS
Erreur(ErreurInfo(errComplet))
SINON
ResCode est une chaîne ANSI = HTTPDonneRésultat()
Info(ResCode)
FIN
Signaler
0
0
Jérôme
#4
Membre enregistré
179 messages
Popularité : +17 (17 votes)
Posté le 05 décembre 2018 - 09:04
Mais ensuite sur android comment remplacer les types wsrequetes et wsreponse qui ne fonctionnent qu'avec IOS ? pour que le code fonctionne
C'est très simple, il faut enlever de l'appel la variable de type wsRequête passé en premier paramètre et il ne faut plus récupérer le résultat avec une variable de type wsRéponse mais avec la variable initiale (celle que l'on aurait utilisée si le type wsRéponse n'existait pas).
Alors qu'avec le meme body et les memes header dans postman ou Soap UI ca passe
Pour savoir ce qui est vraiment envoyé sans utiliser le type wsRequête, il faut regarder ce qui est appelé via WireShark et le comparer à ce que l'on pense qui transit. On a souvent des surprises !
Signaler
0
0
dominique
#5
Posté le 06 décembre 2018 - 02:25
Merci Jérome !!
Signaler
0
0
→ Revenir à WINDEV Mobile 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte