VB .NET - Criando uma aplicação Windows Completa III


Na primeira parte deste artigo -  VB 2005 - Criando uma aplicação Windows Completa I - definimos o escopo da nossa aplicação e criamos a primeira parte da interface usando os controles SplitContainer, ToolStrip, MenuStrip e StatusStrip. Na segunda parte mostramos como criar o banco de dados e a tabela que irá armazenar as informações na nossa máquina local e  a interface para exibir estas informações.

Nesta terceira parte vou mostrar como criar a referência ao web service que será usado na aplicação para obter informações sobre os livros no site da Amazon.com.  Para poder usar um web service da Amazon você tem que se registrar como um usuário e usar sua chave de acesso de identificação - ID - para poder efetuar requisições usando o web service da Amazon.

Acesse o site www.amazon.com/gp/aws/landing.html e efetue o seu registro, ao final você a tela abaixo informando que o seu registro foi efetuado com sucesso. Você deverá receber um identificador de chave de acesso no seu e-mail.

Após efetuar o registro você pode continuar com o projeto incluindo uma referência a um web service para poder usar o serviço. Após você incluir a referência o VB 2005 Express pode gerar de forma automática uma classe proxy para você de forma que você poderá invocar o web service como se você estivesse efetuando chamadas a um objeto.

- Clique com botão direito do mouse sobre o nome do projeto e selecione a opção - Add Web Reference;

- Na janela Add Web Reference, informe a URL - http://webservices.amazom.com/AWSECommerceService/AWSECommerceService.wsdl e clique no botão Go:

Se o documento WSDL for encontrado e recebido com sucesso, você poderá incluí-lo no seu projeto clicando no botão -Add Reference - ver figura abaixo-  vou chamar o web service de AmazonWS

Ao final, se você olhar na janela Solution Explorer deverá visualizar a referência incluída:

Com isto já temos a referência ao web service da Amazon incluída no nosso projeto e pronta para ser usada.

Vamos voltar para nossa aplicação e usar os métodos e propriedades do web service para poder procurar informações sobre livros no site da Amazon.

Olhando para a interface criada ao lado nossa aplicação irá permitir ao usuário informar palavras chaves para efetuar a busca.

Após clicar no botão - Obter Info - iremos usar os dados fornecidos e usando o web service referenciado vamos obter o resultado e exibi-lo na caixa de listagem.

Iremos exibir os títulos dos livros ordenados por ordem de venda.

Vamos então ao código que implementa estas funcionalidades...

No início do formulário vamos declarar as variáveis objetos usadas para obter a resposta do web service:

'define as variavies objeto do web service para resposta e itens a serem procurados
Dim amazonResponse As amazonWS.ItemSearchResponse = Nothing
Dim amazonItens As amazonWS.Item() = Nothing

A seguir no evento click do botão de comando - Obter Info - vamos incluir o seguinte código:

Private Sub btnObterInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnObterInfo.Click

 Me.Cursor = Cursors.WaitCursor
 obtemInformacaoLivro(txtPalavrasChaves.Text)

End Sub

Este código altera a forma do cursor e chama a rotina obtemInformacaoLivro() passando como parâmetro as palavras chaves informadas na caixa de texto pelo usuário.

Vamos então definir o código para a rotina obtemInformacaoLivro() :

Public Sub obtemInformacaoLivro(ByVal palavraChave As String)


'define as variaveis objetos do web service

Dim procuraItemRequest As New amazonWS.ItemSearchRequest

Dim procurarItem As New amazonWS.ItemSearch


'monta a requisição a ser enviada ao web service

With procuraItemRequest

    'define o SearchIndex ou modo de procura

    .SearchIndex = "Books"

      'define as palavras chaves de busca

    .Keywords = palavraChave

    'define o tamanho da responsta

    .ResponseGroup = New String() {"Medium"}

    'define a ordenação do resultado: os mais vendidos

    .Sort = "salesrank"

End With
 

With procurarItem

    'define o ID obtido no registro do site da Amazon.com

       'você deve usar aqui o SEU ID

    .AWSAccessKeyId = "XXXXXXXXXXXXXXXXX"

    .Request = New amazonWS.ItemSearchRequest() {procuraItemRequest}

End With
 

Try

   'invoca o web service da amazon

   amazonResponse = My.WebServices.AWSECommerceService.ItemSearch(procurarItem)
 

   If amazonResponse IsNot Nothing Then

       amazonItens = amazonResponse.Items(0).Item

   End If

 

Catch ex As Exception

   MsgBox(ex.Message)

Finally

   Me.Cursor = Cursors.Default

End Try


 'se não encontrou nenhum item sai da rotina

 If amazonItens Is Nothing Then Exit Sub


   'limpa o listbox

   lstLivros.Items.Clear()

 

   'inclui o titulo dos livros no listbox

    For i As Integer = 0 To amazonItens.Length - 1

       With amazonItens(i)

           lstLivros.Items.Add(.ItemAttributes.Title)

       End With

     Next

End Sub

O código esta comentado por isto não há muito o que dizer. Veja também o artigo : ASP.NET 2.0  -  Usando o Web Service da Amazon onde eu dou mais detalhes sobre as propriedades do web service usadas para montar a requisição.

Executando o projeto e informando as palavras chave - visual basic 2005 - iremos obter o seguinte resultado:

Com isto concluímos a obtenção dos dados do site da Amazon.com a partir de nossa aplicação Windows Forms no VB 2005 Express Edition usando web services.

Acompanhe a continuação do artigo em : VB 2005 - Criando uma aplicação Windows Completa IV -   onde irei mostrar como exibir as demais informações retornadas pelo web service incluindo a imagem da capa do livro.

Até breve ...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti