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

Web & réseau Delphi Discussion :

Problème pour invoquer un webservices


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut Problème pour invoquer un webservices
    Bonjour,

    je reviens avec mes problèmes d'invocation webservices OCOD. Maintenant j'arrive bien à importer le wsdl, mais je bloque lors de l'invocation. J'obtiens un message :
    Bad Request ( The data is invalid. ) (400) - "https://....l'adresse que je fournis"

    alors j'ai testé le webservice avec SOAPSonar, avec la même adresse cela fonctionne parfaitement...

    J'ai installé le patch des webservices trouvé chez Embarcadero, mais idem (au passage j'ai des avertissements lors de la compilation générés par le nouveau code...)
    J'ai recopié le code généré par SOAPSonar et j'ai remplacé le SOAPRequest dans l'event Httprio.beforeexecute par ce code généré, car j'ai remarqué qu'il y a des différences entre le xml généré par Delphi et celui généré par SOAPSonar.
    Malheureusement j'obtiens toujours le même message. Donc le problème ne vient pas encore de ce que j'envoie...
    Alors une petite particularité par rapport à mes autres expériences avec les webservices : la connexion se fait en https, et dans l'url d'appel, je dois préciser un sessionid. En fait elle a cette structure :
    https://Server/chemin;jsessionid=Le N° de session généré par l'authentification.
    Je ne sais plus trop où chercher. Donc toute idée sera la bienvenue.

    Merci de votre attention.

    @++
    Dany

  2. #2
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    re,

    bon, alors j'ai trouvé la cause, maintenant le remède risque de ne pas être simple.
    Donc voilà, dans le wsdl, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Default_Binding_Account = interface(IInvokable)
      ['{D3001953-0497-CD74-E9A5-1C7342D311F4}']
        function  AccountQueryPage(const AccountWS_AccountQueryPage_Input: AccountWS_AccountQueryPage_Input): AccountWS_AccountQueryPage_Output; stdcall;
    ...   
    end;
    Ce qui produit un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOAPAction:"document/urn:monurn/ws/account/10/2004:AccountQueryPage"
    qui est correct

    par contre dans le message SOAP j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SOAP-ENV:Body><AccountQueryPage xmlns="urn:crmondemand/ws/account/10/2004">.....
    or visiblement le server attend cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SOAP-ENV:Body><AccountWS_AccountQueryPage_Input xmlns="urn:crmondemand/ws/account/10/2004">....
    C'est ce qui produit l'erreur.

    Alors si je renomme le nom de la méthode dans l'interface, j'obtiens bien le code attendu, par contre mon SOAPAction devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOAPAction:"document/urn:monurn/ws/account/10/2004:AccountWS_AccountQueryPage_Input"
    ce qui ne plait pas du tout non plus au serveur.

    Et là je ne vois plus sur quoi jouer pour obtenir le résultat, à part remplacer le nom dans le message SOAP dans le OnbeforeExecute du HTTPRIO, mais j'aimerai éviter cela, car bien entendu j'ai pleins de méthodes à utiliser.

    Si quelqu'un a une petite idée de ce que je peux changer dans le wsdl pour obtenir le résultat escompté, ce serait top.

    Merci pour votre attention.

    @++
    Dany

  3. #3
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    Bonjour,

    bon alors voilà, à force de jouer sur les paramètres du wsdlomp, j'ai finit par arriver à générer mon interface comme il fallait et ça se sérialize correctement maintenant, ouf !!

    Je sais pas si ça pourrai aider quelqu'un, mais visiblement c'est l'option -Ox qui a été déterminante.
    Il est bien cet outil, mais qu'est-ce que ça manque de documentation !!

    @++
    Dany

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème pour publier mon premier webservice sur IIS
    Par jacko842 dans le forum Services Web
    Réponses: 4
    Dernier message: 14/03/2016, 15h11
  2. [IIS 7] Problème pour publier mon 1er webservice c#
    Par jacko842 dans le forum IIS
    Réponses: 0
    Dernier message: 03/04/2015, 22h56
  3. [Axis] Problème pour déployer mon WebService
    Par verbose dans le forum Services Web
    Réponses: 1
    Dernier message: 01/07/2010, 17h44
  4. Problème pour faire tourner un client webservice
    Par morfessa dans le forum Taglibs
    Réponses: 0
    Dernier message: 07/05/2010, 11h39
  5. [VB.NET][WebServices] Problème pour trouver une Assembly
    Par sleeloo dans le forum Services Web
    Réponses: 3
    Dernier message: 19/11/2006, 12h45

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