.net Core 6 Consume Soap Service

5 min read Jun 03, 2024
.net Core 6 Consume Soap Service

Consommer un service SOAP avec .NET Core 6

Introduction

.NET Core 6 offre une excellente prise en charge pour la consommation de services SOAP. Cette fonctionnalité est particulièrement utile pour interagir avec des systèmes hérités qui utilisent encore largement ce protocole. Dans cet article, nous allons explorer les étapes nécessaires pour consommer un service SOAP à l'aide de .NET Core 6.

Prérequis

Avant de commencer, assurez-vous d'avoir les éléments suivants :

  • .NET 6 SDK : Téléchargez et installez le SDK .NET 6 depuis le site officiel.
  • Visual Studio Code ou Visual Studio : Un éditeur de code ou un IDE est nécessaire pour créer et gérer votre projet .NET Core.
  • Définition WSDL du service SOAP : Vous aurez besoin du fichier WSDL (Web Services Description Language) du service SOAP que vous souhaitez consommer. Ce fichier contient la description des opérations, des types de données et des paramètres du service.

Consommer un service SOAP avec .NET Core 6

Voici les étapes principales pour consommer un service SOAP avec .NET Core 6 :

  1. Créer un nouveau projet .NET Core

    Utilisez la commande suivante dans votre console pour créer un nouveau projet .NET Core :

    dotnet new console -o MySoapConsumer
    

    Remplacez MySoapConsumer par le nom souhaité pour votre projet.

  2. Installer le package NuGet System.ServiceModel.Primitives

    Ce package est requis pour l'interaction avec les services SOAP. Utilisez la commande suivante dans votre console pour installer le package :

    dotnet add package System.ServiceModel.Primitives
    
  3. Créer un fichier de configuration

    Créez un fichier nommé appsettings.json à la racine de votre projet. Ajoutez les informations de configuration suivantes :

    {
      "SoapService": {
        "Url": "https://www.example.com/WebService.asmx",
        "UserName": "your_username",
        "Password": "your_password"
      }
    }
    

    Remplacez les valeurs par les informations d'authentification et l'URL de votre service SOAP.

  4. Générer des classes proxy

    Utilisez l'outil svcutil (Service Utility) pour générer des classes proxy à partir du fichier WSDL. Exécutez la commande suivante dans votre console :

    svcutil /language:csharp /out:MySoapClient.cs https://www.example.com/WebService.asmx?WSDL
    

    Remplacez MySoapClient.cs par le nom souhaité pour votre fichier proxy.

  5. Utiliser les classes proxy

    Dans votre code, utilisez les classes proxy générées pour interagir avec le service SOAP. Voici un exemple :

    using System.ServiceModel;
    using MySoapClient; // Nom du fichier proxy généré
    
    public class Program
    {
        public static void Main(string[] args)
        {
            // Charger les paramètres de configuration
            var config = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .Build();
            var soapServiceUrl = config.GetValue("SoapService:Url");
            var username = config.GetValue("SoapService:UserName");
            var password = config.GetValue("SoapService:Password");
    
            // Créer un client SOAP
            var client = new MySoapClient(new BasicHttpBinding(), new EndpointAddress(soapServiceUrl));
    
            // Authentification
            client.ClientCredentials.UserName.UserName = username;
            client.ClientCredentials.UserName.Password = password;
    
            // Appeler une opération du service SOAP
            var result = client.MySoapMethod("param1", "param2");
    
            // Afficher le résultat
            Console.WriteLine($"Result: {result}");
        }
    }
    

Conclusion

Consommer un service SOAP avec .NET Core 6 est un processus relativement simple. En utilisant les outils et les fonctionnalités fournis par le framework, vous pouvez facilement interagir avec des systèmes hérités et exploiter les données et les services qu'ils offrent.

Mots clés: .NET Core 6, SOAP, service SOAP, consommation, service Web