Leçon 3 : accès au service Web

Après avoir ajouté une référence au service Web Report Server à votre projet, l'étape suivante consiste à créer une instance de la classe proxy du service Web. Vous pouvez alors accéder aux méthodes de ce service Web en les appelant dans la classe proxy. Lorsque votre application appelle ces méthodes, le code de la classe proxy générée par Visual Studio gère les communications entre votre application et le service Web.

Vous allez tout d'abord créer une instance de la classe proxy du service Web ReportingService2005. Vous allez ensuite appeler la méthode GetProperties du service Web en utilisant la classe proxy. Vous utiliserez cet appel pour extraire le nom et la description de l'un des exemples de rapports appelé Company Sales.

Notes

Lors de l'accès à un service Web s'exécutant sous SQL Server Express with Advanced Services, vous devez ajouter "$SQLExpress" au chemin d'accès "ReportServer". Exemple :

http://<Server Name>/reportserver$sqlexpress/reportservice2005.asmx"

Pour accéder au service Web

  1. Vous devez tout d'abord ajouter l'espace de noms au fichier Program.cs (Module1.vb dans Visual Basic) en ajoutant une directive using (Import en Visual Basic) dans le fichier de code. Si vous utilisez cette directive, il n'est pas nécessaire de qualifier complètement les types dans l'espace de noms.

  2. Pour ce faire, ajoutez le code suivant au début de votre fichier de code :

    Imports System
    Imports GetPropertiesSample.ReportService2005
    
    using System;
    using GetPropertiesSample.ReportService2005;
    
  3. Après avoir entré la directive d'espace de noms dans votre fichier de code, entrez le code suivant dans la méthode Main de votre application console. Pensez à modifier le nom de votre serveur au moment de définir la propriété Url de l'instance du service Web :

    Sub Main()
       Dim rs As New ReportingService2005
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials
       rs.Url = "http://<Server Name>/reportserver/reportservice2005.asmx"
    
       Dim name As New [Property]
       name.Name = "Name"
    
       Dim description As New [Property]
       description.Name = "Description"
    
       Dim properties(1) As [Property]
       properties(0) = name
       properties(1) = description
    
       Try
          Dim returnProperties As [Property]() = rs.GetProperties( _
             "/AdventureWorks 2008 Sample Reports/Company Sales 2008", properties)
    
          Dim p As [Property]
          For Each p In returnProperties
              Console.WriteLine((p.Name + ": " + p.Value))
          Next p
    
       Catch e As Exception
          Console.WriteLine(e.Message)
       End Try
    End Sub
    
    static void Main(string[] args)
    {
       ReportingService2005 rs = new ReportingService2005();
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
       rs.Url = "http://<Server Name>/reportserver/reportservice2005.asmx";
    
       Property name = new Property();
       name.Name = "Name";
    
       Property description = new Property();
       description.Name = "Description";
    
       Property[] properties = new Property[2];
       properties[0] = name;
       properties[1] = description;
    
       try
       {
          Property[] returnProperties = rs.GetProperties(
          "/AdventureWorks 2008 Sample Reports/Company Sales 2008",properties);
    
          foreach (Property p in returnProperties)
          {
             Console.WriteLine(p.Name + ": " + p.Value);
          }
       }
    
       catch (Exception e)
       {
          Console.WriteLine(e.Message);
       }
    }
    
  4. Enregistrez la solution.

L'exemple de code de cette procédure pas à pas utilise la méthode GetProperties du service Web pour récupérer les propriétés de l'exemple de rapport intitulé Company Sales 2008. La méthode GetProperties accepte deux arguments : le nom du rapport pour lequel vous souhaitez récupérer les informations de propriétés et un tableau d'objets Property[] qui contient les noms des propriétés dont vous souhaitez récupérer les valeurs. Cette méthode renvoie également un tableau d'objets Property[] qui contient les noms et les valeurs des propriétés spécifiées dans l'argument des propriétés.

Notes

Si vous fournissez un tableau Property[] vide pour l'argument des propriétés, toutes les propriétés disponibles sont renvoyées.

Dans l'exemple précédent, le code utilise la méthode GetProperties pour renvoyer le nom et la description de l'exemple de rapport intitulé Company Sales 2008. Il utilise ensuite une boucle foreach pour écrire les propriétés et les valeurs dans la console.

Pour plus d'informations sur la création et l'utilisation d'une classe proxy pour le service Web Report Server, consultez Création du proxy de service Web.