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

Windows Forms Discussion :

Windows Form et les web services


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 25
    Points : 18
    Points
    18
    Par défaut Windows Form et les web services
    Bonjour,

    je travaille actuellement sur un projet qui consiste à envoyer un document Word généré par l'application Win Forms Via un web Service. à présent je fais mes premiers pas avec les web services et je suis à cours d'informations !

    j'ai commencé par des tests en local du coup j'ai créé un mock service soap avec le logiciel SOAP UI et j'ai testé sur ce Logiciel, ce que je POST est bien recu !

    Là je passe à l'étape suivante qui consisterait à envoyer une simple information ' numéro de commande' à titre d'exemple, j'ai fait quelques lignes de commandes notamment exposé sur la documentation C# mais j'ai plusieurs erreurs !

    je ne sais pas si c'est à cause du 'Mock Service' ou problème du codage !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    namespace testWebService
    {
        class WebRequestPost
        {
            public static void Main()
            {
                // Create a request using a URL that can receive a post.   
                WebRequest request = WebRequest.Create("http://localhost:8088/mockOrder?WSDL");
                // Set the Method property of the request to POST.  
                request.Method = "POST";
     
                // Create POST data and convert it to a byte array.  
                string postData = "Order012";
                byte[] byteArray = Encoding.UTF8.GetBytes(postData);
     
                // Set the ContentType property of the WebRequest.  
                request.ContentType = "text/xml; charset=utf-8";
                // Set the ContentLength property of the WebRequest.  
                request.ContentLength = byteArray.Length;
     
                // Get the request stream.  
                Stream dataStream = request.GetRequestStream();
                // Write the data to the request stream.  
                dataStream.Write(byteArray, 0, byteArray.Length);
                // Close the Stream object.  
                dataStream.Close();
     
                // Get the response.  
                WebResponse response = request.GetResponse();
                // Display the status.  
                Console.WriteLine(((HttpWebResponse)response).StatusDescription);
     
                // Get the stream containing content returned by the server.  
                // The using block ensures the stream is automatically closed.
                using (dataStream = response.GetResponseStream())
                {
                    // Open the stream using a StreamReader for easy access.  
                    StreamReader reader = new StreamReader(dataStream);
                    // Read the content.  
                    string responseFromServer = reader.ReadToEnd();
                    // Display the content.  
                    Console.WriteLine(responseFromServer);
                }
     
                // Close the response.  
                response.Close();
            }
        }
    }
    Je vous remercie d'avance pour votre réponse !
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Déjà tu n'es pas sensé appelé le WSDL mais un contrôleur pour faire ton POST.
    Et puis si tu ne nous indique pas l'erreur que tu obtiens, ce sera difficile de t'aider.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Merci pour ta réponse !

    Donc pour utiliser le service « mocké » dans mon application, il faut que je consomme le webservice à partir de l’endpoint (est ce que c'est ca ce que tu entends par un contôleur) du mockService au lieu de celui fourni avec le wsdl par défaut?

    du coup j'ai modifié l'URL mais j'ai toujours la même erreur !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      // Create a request using a URL that can receive a post.   
                WebRequest request = WebRequest.Create("http://mul-n003:8088/mockOrder");
                // Set the Method property of the request to POST.  
                request.Method = "POST";
    Images attachées Images attachées   

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    s'il y a un wsdl c'est que ca doit être un webservice soap, auquel cas wcf peut te générer du code client à partir de ce wsdl
    tu auras donc des méthodes plus simples en c# genre void mockOrder(string orderId) ce qui est très simple à utiliser, wcf s'occupant du dialogue avec le service (après si tu ne connais pas wcf ca peut prendre un peu de temps à mettre en place)
    de mémoire c'est clic droit sur le projet, ajouter une référence de service, type wcf et donner le lien vers le wsdl
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Salut,

    Merci pour ta réponse !
    Effectivement c'est du SOAP, et pour le fichier WSDL c'est moi qui l'ai créé pour pouvoir créer un mock service SOAP.
    Le WCF ca me parle pas ! pouras-tu me donner plus d'indications

    Merci d'avance !

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    y a des infos sur le net

    wcf est une partie du framework .net qui n'est le futur certes mais qui fonctionne
    il y a une partie serveur et une partie client, on peut utiliser l'une l'autre ou les 2 dans un projet .net
    c'est interopérable, très paramétrable, et multi protocole (http ou autre)
    ça gère l'appels de procédure distante par réseau

    sur un programme en .net des 2 côtés ca permet par exemple de déclarer une méthode côté serveur et de l'appeler côté client comme si elle était locale, mais wcf s'occupe de faire transiter les paramètres vers le serveurs qui exécute la méthode et retourne la réponse au client (comme un type de retour)
    côté client on se retrouve à la ligne de code d'après sans avoir codé ce qui se passe au milieu (sérialisation (xml json ou autre), transport, exécution de l'autre côté, sérialisation de la réponse, transport vers le client)

    dans ton cas tu peux avoir la partie client, wcf est intégré à visual studio, et comme j'ai dit il y a un générateur de code qui génère du code en lisant le wsdl (génération des classes dto si nécessaire)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    D'accord, je vais regarder ca, je te dirai si ca a marché !

    là j'ai basculé vers le REST je teste encore avec cette Architecture si ca plante je reteste avec le SOAP ^^ une des deux méthodes devra fonctionner ! Mais avec les mock services j'ai l'impression que ca ne marche pas au top surtout pour les POST request !

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Bonjour,


    je pense avoir compris pourquoi ma requête POST ne fonctionnait pas comme prévu, en effet un mock service ne fournit aucune fonctionnalité réelle, sauf pour l'envoi des réponses prédéfinies, c'est pourquoi quand j'envoie une requête POST à partir de mon application win et que je teste par la suite sur le soapUI, la donnée envoyé n'est pas recu concretement.

Discussions similaires

  1. [Débutant] Windows Form se connectant à un service web
    Par Marc22 dans le forum Services Web
    Réponses: 4
    Dernier message: 22/12/2009, 22h13
  2. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41
  3. [Axis]installation du client Axis pour les Web Services
    Par LESOLEIL dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 31/08/2005, 14h45
  4. [WebService]Eclipse et les Web Services
    Par LESOLEIL dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/08/2005, 11h28

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