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

Bibliothèques et frameworks PHP Discussion :

[Web Service] Appel d'un web service


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 221
    Points : 88
    Points
    88
    Par défaut [Web Service] Appel d'un web service
    Bonjour

    J'ai créer un web service en asp qui lui même appelle un web service externe.
    J'ai ensuite tester l'appel de mon web service via une page php.

    J'ai intégré la référence du web service externe à mon projet asp.
    Voici l'appel au web service externe depuis mon WS asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OceanKm.getKMorHPortTypeClient km = new wsOceanKm.OceanKm.getKMorHPortTypeClient();
    return  (km.getKMorH("xxx", "xxx", "CA-503-AT"))[0].KM_OU_HORAMETRE;
    Voici la méthode getKMWork que j'appelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public EnregTabKMorH[] getKMorH(string login, string pwd, string immat) {
                wsOceanKm.OceanKm.getKMorHRequest inValue = new wsOceanKm.OceanKm.getKMorHRequest();
                inValue.login = login;
                inValue.pwd = pwd;
                inValue.immat = immat;
                wsOceanKm.OceanKm.getKMorHResponse retVal = ((wsOceanKm.OceanKm.getKMorHPortType)(this)).getKMorH(inValue);
                return retVal.retour;
            }
    Voici l'erreur que j'ai quand j'appelle mon web service depuis ma page php

    Fatal error: Uncaught SoapFault exception: [soap:Server] System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.ServiceModel.ProtocolException: Le type de contenu text/xml; charset=ISO-8859-1 du message de réponse ne correspond pas au type de contenu de la liaison (text/xml; charset=utf-8). Si vous utilisez un codeur personnalisé, vérifiez que la méthode IsContentTypeSupported est implémentée correctement. Les premiers 1024 octets de la réponse étaient : « <?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://ws.oceansystem.com/"><SOAP-ENV:Body><ns1:getKMorHResponse xmlns:ns1="urn:getKMorH"><retour xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:EnregTabKMorH[2]"><item xsi:type="tns:EnregTabKMorH"><ERREUR_OCEAN xsi:type="xsd:st in C:\wamp\www\TestWebservice.php on line 29

    J'ai poster mon problème sur ce forum car je pense que mon problème vient de l'appel de la méthode.
    Apparement la méthode externe renvoie un tableau (EnregTabKMorH[]) et je pense que le soucis vient de là

    Merci pour votre aide

  2. #2
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 221
    Points : 88
    Points
    88
    Par défaut
    J'ai fait un programme de test sous Visual Studio de type console pour appeler le web service externe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        class Program
        {
            static void Main(string[] args)
            {
     
                ServiceReference1.getKMorHPortTypeClient km = new ServiceReference1.getKMorHPortTypeClient();
     
                Console.WriteLine(km.getKMorH("xxx", "xxx", "CA-503-AT")[0].KM_OU_HORAMETRE);
     
     
            }
        }
    voici l'erreur que j'obtiens


    Le type de contenu text/xml; charset=ISO-8859-1 du message de réponse ne correspond pas au type de contenu de la liaison (text/xml; charset=utf-8). Si vous utilisez un codeur personnalisé, vérifiez que la méthode IsContentTypeSupported est implémentée correctement. Les premiers 804 octets de la réponse étaient : « <?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://ws.oceansystem.com/"><SOAP-ENV:Body><ns1:getKMorHResponse xmlns:ns1="urn:getKMorH"><retour xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:EnregTabKMorH[1]"><item xsi:type="tns:EnregTabKMorH"><IDENTIFIANT_VEHICULE xsi:type="xsd:string">757</IDENTIFIANT_VEHICULE><LIBELLE_VEHICULE xsi:type="xsd:string">CA-503-AT</LIBELLE_VEHICULE><KM_OU_HORAMETRE xsi:type="xsd:string">39613</KM_OU_HORAMETRE><UNITE xsi:type="xsd:string">K</UNITE></item></retour></ns1:getKMorHResponse></SOAP-ENV:Body></SOAP-ENV:Envelope> ».

Discussions similaires

  1. Appeler un web service avec pl/sql
    Par squalito dans le forum PL/SQL
    Réponses: 5
    Dernier message: 17/09/2012, 15h21
  2. [Web Services] Appel de Web Service (pb avec authentification)
    Par cicolas dans le forum Spring
    Réponses: 4
    Dernier message: 04/07/2006, 10h20
  3. [Débutant] Appeler un Web Service
    Par slyer dans le forum Services Web
    Réponses: 2
    Dernier message: 17/02/2006, 18h15
  4. [WebService] Appel générique d'un service web
    Par chang_koukaii dans le forum Services Web
    Réponses: 7
    Dernier message: 17/12/2005, 00h05

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