Compartilhar via


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

Depois de adicionar uma referência para o serviço Web servidor de relatório ao seu projeto, a próxima etapa é criar uma instância da classe proxy do serviço Web. Em seguida, você pode 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 manipula as comunicações entre seu 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 para o método do GetProperties serviço Web usando a classe proxy. Você usará a chamada para recuperar o nome e a descrição de um dos relatórios de exemplo, Vendas da Empresa.

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 de Program.cs (Module1.vb no Visual Basic) adicionando uma using diretiva (Imports no Visual Basic) ao arquivo de código. Se você usar essa diretiva, não precisará qualificar totalmente os tipos no namespace.

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

    Imports System  
    Imports GetPropertiesSample.ReportService2010  
    
    using System;  
    using GetPropertiesSample.ReportService2010;  
    
  3. Depois de inserir a diretiva de namespace no arquivo de código, insira o código a seguir no método Principal do aplicativo de console. Altere o nome do servidor ao definir 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 GetProperties método do serviço Web para recuperar propriedades do relatório de exemplo, Vendas da Empresa 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 de propriedades.

Observação

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

No exemplo anterior, o código usa o GetProperties método para retornar o nome e a descrição do relatório de exemplo, Vendas da Empresa 2012. Em seguida, o código usa um foreach loop 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ório, consulte Criando o Proxy de Serviço Web.

Consulte Também

Lição 4: Executando o aplicativo (VB-VC#)
Acessando o serviço Web servidor de relatório usando Visual Basic ou Visual C# (Tutorial do SSRS)