Vous êtes sur la page 1sur 6

Utilizando o Visual Basic .

NET no acesso ao Web Service


do site Google
Descubra como acessar as APIs do Web service da Google a partir do front-end do Visual Basic .NET. Este
artigo descreve como invocar um Web service SOAP, executar uma busca no site Google, acessar uma
pgina no cache do Google e recorrer ao verificador ortogrfico do mesmo Web site.

Faa o download do VBGoogleDemo.exe acessando o site MSDN Code Center.


Contedo
Web Services are Cool Como so legais os Web services
Our Sample Form Nossa amostra do formulrio
Procedure Procedimentos
A Note on Exception Handling Nota sobre o controle de excees
Conclusion Concluso
How to Get the Kit and a License Key Como conseguir do Kit e a chave de autorizao

Como so legais os Web Services


Os Web services esto entre as tecnologias emergentes mais emocionantes de nossos tempos. Voltados
para a Internet e para os negcios, os Web services permitem que as empresas se conectem umas s
outras de forma padro, executando chamadas de procedimentos remotos atravs dos firewalls, utilizando
a Internet como meio de transporte. O site Google desenvolveu um dos primeiros Web services pblicos
que permitem que qualquer desenvolvedor possa acessar a busca do Google, seu cache e os servios de
verificao ortogrfica. O Visual Studio .NET simplifica sensivelmente o acesso s vrias funes
disponibilizadas pela API do Web service do Google.

Nossa amostra do formulrio


Figura 1: mostra a interface de um formulrio simples. Ele possui uma caixa de texto para se entrar com
a chave de autorizao do Google (veja no Sidebar: How to Get the Google Web APIs Toolkit and License
Key Como ter acesso ao Toolkit das APIse da Web Chave de Autorizao do Google ) e trs captulos
que testam trs funes do Google. A primeira seo permite que voc digite texto de busca, retornando o
nmero de resultados. A segunda seo permite que voc entre em um Web site, retornando o tamanho
da pgina no cache do Google. A terceira seo invoca o verificador ortogrfico do Google, retornando o
valor verificado.

Figura 1: o formulrio em execuo

Procedimentos
Agora que observamos o comportamento deste formulrio, vamos analisar os passos que envolvem sua
codificao. Para isso, h quatro etapas envolvidas:

Como referenciar o Web service

Como criar a funo responsvel pela busca

Como criar a funo responsvel pela verificao do tamanho do cache

Como criar a funo que invoca o verificador ortogrfico

Como referenciar o Web service do Google


Para referenciar o Web service do Google, so necessrios trs passos:
1.

Criar um novo projeto em Windows Forms.

2.
3.

Clicar com o boto direito do mouse sobre o projeto.


Selecionar Add Web Reference.
Nota: a opo Add Web Reference igual ao Add Reference do VB6, exceto
que, no lugar de ter acesso a todos os mtodos de um componente COM, voc tem
acesso a um Web service em XML, situado em uma rede diferente. Melhor ainda,
este um acesso inteiramente tipado, o Intellisense pode ser acionado como se ele
fosse qualquer objeto local.

4.
5.

Digite a localizao da descrio do Web service (http://api.google.com/GoogleSearch.wsdl) na


caixa de texto do Address.
Clique no boto Add Reference para importar a definio do Web service.

6.
7.
8.

Uma vez importado, v at o Solution Explorer e abra o n Web References da rvore.


Renomeie a referncia para Google clicando com o boto direito e escolhendo Rename.
Desenhe o formulrio mostrado acima.

Adicione o cdigo em cada boto. Um duplo clique em cada boto (como no VB6) d acesso ao mtodo
que executado quando o evento de clicar desencadeado. Vejamos cada um desses itens:

Executando uma busca no Google


Analisando o cdigo do mtodo btnSearch_Click no Listing 1, podemos verificar que foi criado um novo
objeto GoogleSearchService. Na prxima linha, foi criado um novo objeto GoogleSearchResult
aproveitando a nova funcionalidade do VB.NET de declarar e criar o objeto em uma linha. No VB.NET, os
dois snippets abaixo so equivalentes:

DimxAsString="Hello"
e

DimxAsString
x="Hello"
Aps a criao do objeto result (que foi criado depois de passar uma chave de autorizao do Google,
fazer a busca do texto e outros parmetros ao objeto de busca), a propriedade
estimatedTotalResultsCount utilizada para preencher o rtulo. Em apenas quatro linhas de cdigo foi
invocado um procedimento da Web, processou-se uma busca no Google, e o nmero de resultados foi
apresentado.

Este exemplo mostra o uso simples de um servio de busca. Para conhecer mais sobre os parmetros para
o pedido de busca e sobre os dados retornados, veja a documentao de referncia fornecida pelo Google.

'CreateaGoogleSearchobject.
DimsAsNewGoogle.GoogleSearchService()
'Invokethesearchmethod.
DimrAsGoogle.GoogleSearchResult=
s.doGoogleSearch(txtLicenseKey.Text,txtSearchTerm.Text,0,1,_
False,"",False,"","","")
'Extracttheestimatednumberofresultsforthesearchanddisplayit
DimestResultsAsInteger=r.estimatedTotalResultsCount

lblSearchResults.Text=CStr(estResults)
Listing 1 O mtodo btnSearch_Click

Como descobrir o tamanho de uma pgina Web


Como voc poder verificar no Listing 2, muito fcil se chegar ao tamanho de uma pgina da Web em
cace. Neste caso, foi invocado o mtodo doGetCachedPage e este mtodo foi atribudo a uma matriz de
bytes. Em seguida, pergunta-se a esta matriz qual seu comprimento.

'CreateaGoogleSearchobject
DimsAsNewGoogle.GoogleSearchService()
'InvokethedoGetCachedPagemethodandgetthecachedbytes
Dimbytes()AsSystem.Byte=_
s.doGetCachedPage(txtLicenseKey.Text,txtCachePage.Text)
'Displaythelengthofthecachedpage
lblCacheResults.Text=CStr(bytes.Length)
Listing 2 o mtodo btnCache_Click

Como fazer uma verificao ortogrfica


O mtodo Google final invoca a funcionalidade de verificao ortogrfica do mecanismo Google.
invocado o mtodo doSpellingSuggestion do objeto GoogleSearchService , e se obtivermos
resultados, vamos exibi-los.

'CreateaGoogleSearchobject
DimsAsNewGoogle.GoogleSearchService()
'Askforspellingsuggestion
DimsuggestionAsString=_
s.doSpellingSuggestion(txtLicenseKey.Text,txtSpell.Text)
'Displaythesuggestion,ifany
IfsuggestionIsNothingThen
lblSpellResults.Text="<nosuggestion>"
Else

lblSpellResults.Text=suggestion
EndIf
Listing 3 o mtodo btnSpell_Click

Nota sobre o controle de excees


O cdigo descarregado envolve cada uma das funes em bloco TryCatch (veja no Listing 4). Este
bloco permite capturar qualquer erro que volte pelo Web service SOAP, exibindo-o em uma caixa MsgBox.
O erro mais comum que voc ir detectar ocorre quando voc esquece de incluir sua prpria chave de
autorizao. Para obter uma chave de autorizao, acesse How to Get the Google Web APIs Toolkit and
License Key.

'CreateaGoogleSearchobject
DimsAsNewGoogle.GoogleSearchService()
Try
'InvokethedoGetCachedPagemethodandgetthecachedbytes
Dimbytes()AsSystem.Byte=_
s.doGetCachedPage(txtLicenseKey.Text,txtCachePage.Text)
'Displaythelengthofthecachedpage
lblCacheResults.Text=CStr(bytes.Length)
CatchexAsSystem.Web.Services.Protocols.SoapException
MsgBox(ex.Message)
EndTry
Listing 4 o mtodo btnCache_Click com o controle de excees

Concluso
O Visual Basic .NET oferece uma maneira simples de acessar Web services na Internet. Colocar esta
funcionalidade dentro de sua caixinha de truques poder oferecer novos tipos de recursos: o mesmo
efeito que se usava quando se adicionavam objetos COM e controles ActiveX s aplicaes VB6,
imprimindo a essas aplicaes uma maior funcionalidade. Voc tambm poder tentar adicionar os
recursos de verificao ortogrfica ao seu painel de mensagens da Web, ou automonitorar a Web para
obter novas informaes sobre um determinado assunto. S para dar mais idias, tente dar uma busca na

Web (e buscar termos como "VB Google API applications") para encontrar outras aplicaes que no sejam
VB, criadas por desenvolvedores que utilizaram as APIs da Web do Google e divirta-se.

Como conseguir o Kit e a Chave de Autorizao


Para a cessar a caixa de ferramentas das APIs da Web do Google e solicitar uma chave de autorizao,
acesse o link http://www.google.com/apis/ e siga as instrues. Voc poder fazer o download do kit para
desenvolvedores, e criar sua prpria conta Google, que, depois de alguma verificao por e-mail, oferece
uma licena que poder ser usada em 1.000 consultas gratuitas por dia.

Vous aimerez peut-être aussi