PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Webservice SOAP et Authentification http
Webservice SOAP et Authentification http
Débuté par Jonathan, 08 jan. 2025 12:30 - 6 réponses
Posté le 08 janvier 2025 - 12:30
Bonjour à tous.

Je dois faire appel à un webservice SOAP qui demande une authentification HTTP.
J'ai importé le WSDL sans problème.

Extrait de la doc pour l'authentification :

"Authentification:
L'autorisation d'appeler le service web est du type authentification de base.

Dans le contexte d'une transaction HTTP, l'authentification d'accès de base est une méthode permettant à un agent utilisateur HTTP (par exemple un navigateur Web) de fournir un nom d'utilisateur et un mot de passe lors d'une demande. Dans l'authentification HTTP de base, une requête contient un champ d'en-tête sous la forme Authorization: Basic , où les informations d'identification sont le codage Base64 de l'ID et du mot de passe reliés par un seul deux-points :.
"

Je ne sais pas comment ajouter cette entête.

// Définition de l'URL du service SOAP
ElinkMbeSOAPService.Adresse = "https://api.mbeonline.fr/ws/e-link.wsdl"

// Configuration des informations d'authentification Basic
sUsername est une chaîne = "MonUsername"
sPassword est une chaîne = "MonPassword"

// Création de la chaîne d'authentification Basic
sAuth est une chaîne = "Basic " + Encode(sUsername + ":" + sPassword, encodeBASE64)


Je pense que je dois utiliser la fonction : SOAPAjouteEntête

Mais peu importe la manière dont je l'écris je n'arrive pas à me connecter.


A savoir que j'y arrive très bien avec le logiciel SOAPUi :






Une idée de l'endroit ou je pêche ?
Membre enregistré
999 messages
Posté le 08 janvier 2025 - 13:04
Bonjour,

En faisant ca peut-etre

ElinkMbeSOAPService.Adresse = "https://api.mbeonline.fr/ws/e-link.wsdl"
ElinkMbeSOAPService.Authentification = auBasic
ElinkMbeSOAPService.Utilisateur="MonUsername"
ElinkMbeSOAPService.MotDePasse="MonPassword"

https://doc.pcsoft.fr/fr-fr/?3086001&name=importationconsommation_webservices

Ndrj
Posté le 08 janvier 2025 - 13:46
Ndrj a écrit :
Bonjour,

En faisant ca peut-etre

ElinkMbeSOAPService.Adresse = "https://api.mbeonline.fr/ws/e-link.wsdl"
ElinkMbeSOAPService.Authentification = auBasic
ElinkMbeSOAPService.Utilisateur="MonUsername"
ElinkMbeSOAPService.MotDePasse="MonPassword"

https://doc.pcsoft.fr/fr-fr/?3086001&name=importationconsommation_webservices

Ndrj



Merci pour cette réponse.

Au départ avant de penser à mettre une entête HTTP c'est ce que je faisais justement, mais rien n'y fais je ne me connecte pas.
Membre enregistré
497 messages
Posté le 08 janvier 2025 - 15:09
Bonjour,

Essayez en supprimant la première ligne de votre code, celle qui affecte une valeur à ElinkMbeSOAPService.Adresse.

En effet, et comme l'indique la documentation, la propriété ..Adresse sert à indiquer l'URL du point d'entrée du SOAP, et non pas l'URL du WSDL (qui lui n'est utilisé qu'à l'import du webservice).
Membre enregistré
187 messages
Posté le 08 janvier 2025 - 16:01
Bonjour

Je vois votre problème, vous n'avez pas réçu les information des l'utilisateur et l'information de mot de passe et encore d'autre, votre programme retourne une information de XML à ce que je vois, j'ai deux solutions pour vous, vous pouvez choisir

1. Soit il n'y pas d'information dans votre base de données, alors vous devrez rajouter des essayes pour des tests parce que dans l'image dont vous avez envoié sont toute vide
2. Dans le cas ou les informations se trouvent dans votre base de données et il n'y a pas encore d'information dans l'XML, alors votre code a une erreur

Pour le cas 1, c'est suffisant pour savoir le lien, je veux dire c'est bon
Pour le cas 2, c'est votre programme a une érreur, alors il faut vérifier, je ne vois pas actuellement votre programme c'est pourquoi je ne peut pas répondre

NB : Je vois votre programme est très bien structuré

Cordialement
Mr.RATSIMANDRESY
Niry Aina Eddy
Posté le 08 janvier 2025 - 16:20
Niry Aina Eddy RATSIMANDRESY a écrit :
Bonjour

Je vois votre problème, vous n'avez pas réçu les information des l'utilisateur et l'information de mot de passe et encore d'autre, votre programme retourne une information de XML à ce que je vois, j'ai deux solutions pour vous, vous pouvez choisir

1. Soit il n'y pas d'information dans votre base de données, alors vous devrez rajouter des essayes pour des tests parce que dans l'image dont vous avez envoié sont toute vide
2. Dans le cas ou les informations se trouvent dans votre base de données et il n'y a pas encore d'information dans l'XML, alors votre code a une erreur

Pour le cas 1, c'est suffisant pour savoir le lien, je veux dire c'est bon
Pour le cas 2, c'est votre programme a une érreur, alors il faut vérifier, je ne vois pas actuellement votre programme c'est pourquoi je ne peut pas répondre

NB : Je vois votre programme est très bien structuré

Cordialement
Mr.RATSIMANDRESY
Niry Aina Eddy



Si j'ai bien des informations dans mon XML lorsque j'utilise SOAPUi.
Sauf que je ne le montrai pas sur mon image. Il faut cliquer sur l'onglet "XML".




Posté le 22 janvier 2025 - 23:24
Jonathan a écrit :
Bonjour à tous.

Je dois faire appel à un webservice SOAP qui demande une authentification HTTP.
J'ai importé le WSDL sans problème.

Extrait de la doc pour l'authentification :

"Authentification:
L'autorisation d'appeler le service web est du type authentification de base.

Dans le contexte d'une transaction HTTP, l'authentification d'accès de base est une méthode permettant à un agent utilisateur HTTP (par exemple un navigateur Web) de fournir un nom d'utilisateur et un mot de passe lors d'une demande. Dans l'authentification HTTP de base, une requête contient un champ d'en-tête sous la forme Authorization: Basic , où les informations d'identification sont le codage Base64 de l'ID et du mot de passe reliés par un seul deux-points :.
"

Je ne sais pas comment ajouter cette entête.

// Définition de l'URL du service SOAP
ElinkMbeSOAPService.Adresse = "https://api.mbeonline.fr/ws/e-link.wsdl"

// Configuration des informations d'authentification Basic
sUsername est une chaîne = "MonUsername"
sPassword est une chaîne = "MonPassword"

// Création de la chaîne d'authentification Basic
sAuth est une chaîne = "Basic " + Encode(sUsername + ":" + sPassword, encodeBASE64)


Je pense que je dois utiliser la fonction : SOAPAjouteEntête

Mais peu importe la manière dont je l'écris je n'arrive pas à me connecter.


A savoir que j'y arrive très bien avec le logiciel SOAPUi :






Une idée de l'endroit ou je pêche ?


Bonjour,

Avez-vous pu avancer sur votre problématique ?