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

C++ Discussion :

couche Transport


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut couche Transport
    Bonjour,
    je voudrai envoyer un message SOAP à un serveur SOAP.
    Je viens de développer mon appli client (la couche XML et SOAP), il ne me reste plus qu'à transporter la requête.
    Il faut que j'utilise les méthodes CHTTPConnection et cie. Quelqu'unj aurait-il des exemples svp ?
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    j'ai essayé en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       CInternetSession sess;
       CHttpConnection* conn = sess.GetHttpConnection("http://128.1.207.238", (INTERNET_PORT)80);
       CHttpFile* pFile = conn->OpenRequest(CHttpConnection::HTTP_VERB_POST, "http://128.1.207.238/CallReportAdmin/services/crservice");
       pFile->AddRequestHeaders("Accept: text/xml Content-Type: text/xml SOAPAction: \"Log Event\"");
       CString msg = "Message Test";
       pFile->SendRequest(NULL, 0, (void*)(const char*)msg, strlen(msg));
    La méthode Log Event du serveur SOAP est censée me renvoyer le même message que je lui ai envoyé.
    Quelle méthode utiliser pour voir mon message de retour et pour savoir si le serveur a bien reçu mon message svp ?
    Une solution autre qu'avec EtherReal svp !
    Merci

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    J'ai regardé avec Ethereal et je n'envoie apparement aucun paquet au serveur dont l'adresse IP est : 128.1.207.238.
    Son port est bien 80.
    J'ai tapé l'URL avec Internet Explorer, elle est bonne.
    Qu'est-ce qui ne va pas dans mon code svp ?
    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    J'ai modifié mon code pour que mon client appelle bien la méthode LogEvent du service de mon serveur SOAP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
       CInternetSession sess;
       CHttpConnection* conn = sess.GetHttpConnection("http://128.1.207.238", (INTERNET_PORT)80);
       CHttpFile* pFile = conn->OpenRequest(CHttpConnection::HTTP_VERB_POST, "http://128.1.207.238/CallReportAdmin/services/crService");
       pFile->AddRequestHeaders("Accept: text/xml Content-Type: text/xml SOAPAction: \"LogEvent\"");
       CString msg = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
       msg+="<soap:Body>";
       msg+="<m:LogEvent xmlns:m=\"http://128.1.207.238/CallReportAdmin/services/crService\">";
       msg+="<BALISETEST></BALISETEST>";
       msg+="</m:LogEvent>";
       msg+="</soap:Body>";
       msg+="</soap:Envelope>";
       pFile->SendRequest(NULL, 0, (void*)(const char*)msg, strlen(msg)); // voir avec SendRequestEx
       return 0;
    Et malheureusement, ça ne marche toujours pas.
    Quelqu'un aurait une idée ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    J'ai regardé le prototype de SendRequest, le premier paramètre correspond au header, je lui passe NULL, ça vient peut-être de ça, je vais voir

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Malheureusement, non, cela ne vient pas de là.
    Une suggestion svp ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Bon, j'ai trouvé, il fallait enlever le http:// pour le nom de l'host et le début de l'URL pour le service.

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

Discussions similaires

  1. [2008R2] Excel : actualisation cube : problème couche de transport
    Par VITALTH dans le forum SSAS
    Réponses: 1
    Dernier message: 16/04/2015, 16h03
  2. [Persistance] Conseil cette couche ?
    Par Alec6 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 16/06/2004, 11h21
  3. couche entre partie applicative et donnée
    Par crossbow dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 14/06/2004, 15h54
  4. Combiner plusieurs textures avec couches alpha
    Par TibobiT dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2004, 15h20
  5. programmation reseau - couche 2 du modele osi
    Par sahor dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 18h33

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