Compartilhar via


Lição 3: Acessando o serviço Web

Depois que você adicionar uma referência para o serviço Web Servidor de Relatórios ao seu projeto, a próxima etapa será criar uma instância da classe proxy do serviço Web. Assim, você poderá acessar os métodos do serviço Web chamando os métodos na classe proxy. Quando seu aplicativo chama esses métodos, o código de classe proxy gerado pelo Visual Studio lida com as comunicações entre o aplicativo e o serviço Web.

Primeiro, você criará uma instância da classe proxy do serviço Web, ReportingService2010. Em seguida, você fará uma chamada ao método GetProperties do serviço Web usando a classe proxy. Use a chamada para recuperar o nome e descrição de um dos relatórios de exemplo, Company Sales.

Observação

Ao acessar um serviço Web em execução no SQL Server Express com os Serviços Avançados, você deve acrescentar "$SQLExpress" ao caminho "ReportServer". Por exemplo:

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

Para acessar o serviço Web

  1. Primeiro, você deve adicionar o namespace ao arquivo Program.cs (Module1.vb no Visual Basic) adicionando uma using diretiva (Imports no Visual Basic) ao arquivo de código. Se você usar essa política, não precisará qualificar os tipos completamente no namespace.

  2. Para fazer isso, adicione o seguinte código ao início de seu arquivo de código:

    Imports System  
    Imports GetPropertiesSample.ReportService2010  
    
    using System;  
    using GetPropertiesSample.ReportService2010;  
    
  3. Após a inserção da diretiva de namespace no arquivo de código, digite o código a seguir no método Main do aplicativo de console. Não se esqueça de alterar o nome do servidor ao configurar a propriedade Url da instância do serviço Web:

    Sub Main()  
       Dim rs As New ReportingService2010  
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
       rs.Url = "http://<Server Name>/reportserver/reportservice2010.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 2012 Sample Reports/Company Sales 2012", 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)  
    {  
       ReportingService2010 rs = new ReportingService2010();  
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
       rs.Url = "http://<Server Name>/reportserver/reportservice2010.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 2012 Sample Reports/Company Sales 2012",properties);  
    
          foreach (Property p in returnProperties)  
          {  
             Console.WriteLine(p.Name + ": " + p.Value);  
          }  
       }  
    
       catch (Exception e)  
       {  
          Console.WriteLine(e.Message);  
       }  
    }  
    
  4. Salve a solução.

O código de exemplo passo a passo usa o método GetProperties do serviço Web para recuperar propriedades do relatório de exemplo, Company Sales 2012. O GetProperties método usa dois argumentos: o nome do relatório para o qual você deseja recuperar informações de propriedade e uma matriz de objetos Property[] que contém os nomes das propriedades cujos valores você deseja recuperar. O método também retorna uma matriz de objetos Property[] que contém os nomes e valores das propriedades especificadas no argumento properties.

Observação

Se você fornecer uma matriz Property[] vazia para o argumento properties, todas as propriedades disponíveis serão retornadas.

No exemplo anterior, o código usa o método GetProperties para retornar o nome e a descrição do relatório de exemplo, Company Sales 2012. O código usa um loop foreach para gravar as propriedades e os valores no console.

Para obter mais informações sobre como criar e usar uma classe proxy para o serviço Web Servidor de Relatórios, consulte Creating the Web Service Proxy.

Consulte Também

Lição 4: Executando o aplicativo (VB-VC#)
Acessando o Serviço Web do Servidor de Relatórios com Visual Basic ou Visual C# (Tutorial SSRS)