Este componente permite que uma página ASP obtenha dados/documentos
através do protocolo HTTP.
Mas o que é o protocolo
HTTP? Hyper Text Transfer Protocol é o protocolo usado na World Wide Web
para distribuição e recuperação de informação. A troca de informações
entre um browser e um servidor Web é toda feita através desse protocolo,
que foi criado especificamente para a World Wide Web. O protocolo HTTP
define uma forma de conversação no estilo pedido-resposta entre um
cliente (browser) e um servidor (servidor Web).
Toda a conversação se dá no formato ASCII (texto puro) através de um
conjunto de comandos simples.
O ASPHTTP também pode postar dados para uma página web remota. A
capacidade de analisar dados fora de uma página da Web e colocá-la em
seu próprio formato é uma necessidade. O componente asphttp permite
retirar a página web remota em seu código como uma string.
Instalando o Componente ASPHTTP
Para usar esse componente, copie a DLL para um subdiretório (como \
winnt \ system32) e, para registrar o componente, use o comando
regsvr32. Através do menu Iniciar, aponte para executar e digite CMD,
pressione <ENTER>, e digite:
regsvr32 asphttp.dll
Exemplo
Vejamos agora como é simples usar. Primeiro, crie o objeto, defina uma
única propriedade e chame o método GetURL; o código a seguir demonstra
como usar AspHTTP.
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HTTPObj.Url = "http://www.seu_dominio.com.br/qrtresults.html"
strResult = HTTPObj.GetURL
A variável strResult chamada contém uma seqüência que representa o
documento que resulta de um GET de http://www.
seu_dominio.com.br/qrtresults.html.
Postando os dados
AspHTTP lhe permite publicar dados de volta para o servidor web. O
seguinte exemplo demonstra um pedido POST:
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HTTPObj.Url = "http:// www.seu_dominio.com.br/scripts/update3.asp"
HTTPObj.PostData = "uid=jimb&pwd=teste&id=32&val=1.5?
HTTPObj.RequestMethod = "POST"
strResult = HTTPObj.GetURL
A variável strResult contém uma seqüência que representa o documento
que resulta de um POST para http://www.
seu_dominio.com.br/scripts/update3.asp.
Propriedades AspHTTP
- Accept
A
propriedade Accept indica o tipo de MIME, que pode ser aceito pelo
programa solicitante. Exemplo:
HTTPObj.Accept =
"*/*"
- Authorization
O cabeçalho de autorização
permite que você recupere as URLs que estão localizados em áreas
autenticadas. Para utilizar a propriedade de Autorização, defina
essa propriedade para o nome de usuário e senha, separados por dois
pontos “:”, para a área protegida por senha. Exemplo:
HTTPObj.Authorization = "xanburzum:mxstudio"
- BinaryData
Retorna os dados disponíveis a
partir do pedido GetURL na forma binária. Você pode usar essa
propriedade para pegar dados binários, como imagens fora de um outro
servidor. Exemplo:
<%
Response.ContentType = "image/gif"
Set HTTPObj = Server.CreateObject("AspHTTP.Conn")
HTTPObj.Url =
"http://www.microsoft.com/library/images/gifs/toolbar/write.gif"
HTTPObj.GetURL
Response.BinaryWrite HTTPObj.BinaryData
%>
- ContentType
A propriedade ContentType permite especificar o conteúdo personalizado de cabeçalhos tipo durante uma operação POST. Exemplo:
ContentType = "application/x-www-form-urlencoded"
- Error
Relatórios de quaisquer erros que
possam ocorrer durante a solicitação.FollowRedirectsDiz ao
componente para acompanhar as respostas de redirecionamento do
servidor HTTP. Exemplo:
HTTPObj.FollowRedirects = true
- Headers
A propriedade Headers contém os
cabeçalhos de resposta da solicitação HTTP após o pedido
completado por uma chamada para o método getURL. Exemplo:
Response.Write HTTPObj.Headers
- HTTPLog
Nome do arquivo onde os dados de
transações HTTP podem ser registrados. Exemplo:
HTTPObj.HTTPLog = "c:\httplog.txt"
- MaxRedirects
Define o número máximo de
vezes que um redirecionamento HTTP será permitido. O valor padrão é
3.PortA propriedade Port indica qual porta entra em contato com o
servidor HTTP:
HTTPObj.Port = 80
- PostData
A propriedade PostData deve ser
definida para os valores dos dados que pretende enviar para o
servidor para um pedido de post. Exemplo:
HTTPObj.PostData = "suid=jimb&act=upd"
- Protocol
A propriedade protocol indica
qual a versão do HTTP em que a solicitação deve ser feita. Por padrão,
protocolo HTTP/1.0. Exemplo:
HTTPObj.Protocol = "HTTP/1.1"
- Proxy
Contém o endereço do proxy e a
porta do servidor proxy separados por dois pontos. Exemplo:
HTTPObj.Proxy = "address.net:2001"
- ProxyPassword
Configura a senha do proxy
HTTP para servidores proxy HTTP que requerem autenticação. Apenas a
autenticação básica é suportada. RequestMethodA propriedade
RequestMethod indica que tipo de solicitação HTTP devem ser feitas
para o servidor. Os valores válidos são “GET”, “POST”
e “Head”. Exemplo:
HTTPObj.RequestMethod = "POST"
- RegisteredUser
A propriedade RequestMethod
indica a propriedade RegisteredUser indica o nome do componente está
licenciado. Exemplo:
Response.Write " Este componente está licenciado para " &
HTTPObj.RegisteredUser
- Response
A propriedade de Response contém a resposta HTTP
após um pedido ter sido recebido de um servidor web.SaveFileToO
SaveFileTo permite recuperar arquivos de qualquer tipo e tê-los
automaticamente gravados em um disco do servidor local. Isso lhe
permite recuperar arquivos binários, como imagens, bem como arquivos
de texto, como arquivos HTML. Para usar a propriedade SaveFileTo,
defina o valor da SaveFileTo para o nome do diretório local e nome
do arquivo onde o URL solicitado deve ser guardado. Certifique-se de que o
usuário tem direitos de segurança que permitem a escrita do
arquivo. Defina essa propriedade antes da chamada para GetURL, se
você deseja salvar em um arquivo. Exemplo:
HTTPObj.SaveFileTo = "c:\images\xanburzum.jpg"
- TimeOut
A propriedade timeout determina
quanto tempo o componente deve esperar por uma resposta do servidor
HTTP. O tempo limite padrão é 60 segundos. Exemplo:
HTTPObj.TimeOut = 55
- URL
A propriedade URL deve ser definida
para a URL que você desejar a solicitação. URLs devem ser precedidas
por http://. Exemplo:
HTTPObj.URL =
"http://www.Seu_dominio.com/scripts/update.asp"
- UserAgent
A propriedade UserAgent permite
que o componente represente os navegadores, enviando um cabeçalho
UserAgent no pedido. Exemplo:
HTTPObj.UserAgent = "Mozilla Compatible (MS
IE 3.01 WinNT)"
- Version
A propriedade versão indica a
versão interna do componente AspHTTP. Exemplo:
Response.Write " A versão do componente é "
& HTTPObj.Version
Componente e Métodos AspHTTP
Métodos | Parâmetros | Valor de retorno | Descrição |
GetURL | None | String | GetURL retorna a resposta da solicitação HTTP. Esse valor é um valor de String e o componente atualmente não suporta valores de retorno binários como imagens GIF ou JPEG. |
AddExtraHeader | String | None | Adiciona um cabeçalho HTTP personalizado ao pedido. Cabeçalhos personalizados podem incluir cabeçalhos navegador simulado como cabeçalhos IE resolução do monitor. HTTPObj.AddExtraHeader (“Cookie: ASPSESSIONID=EKKDDPSDKCCPZRNA; path=/kb”) |
ClearExtraHeaders | None | None | Limpa os cabeçalhos de solicitação HTTP que foram criados usando AddExtraHeader. |
GetHeader | String | String | Pega o valor de um cabeçalho específico após GetURL ser chamado. Se vários cabeçalhos têm o mesmo valor GetHeader retorna o primeiro. Para pesquisar todos os cabeçalhos. Exemplo: strCookie = HTTPObj.GetHeader(“Set-Cookie”) Você poderia, então, nas chamadas subseqüentes devolver o mesmo if strCookie <> “” then HTTPObj.AddExtraHeader “Cookie: ” & strCookie |
GetHeaders | None | String | Retorna todos os valores do cabeçalho para análise manual. Header CrLf valores são separados. |
GetHREFs | None | Variant array of Strings | Após uma chamada para GetURL, você pode chamar GetHREFs para analisar qualquer tag <a href=””> no HTML. GetHREFs retorna uma matriz de variante de String que você ainda pode analisar ou mostrar. |
URLDecode | strValue | String | Decodifica uma seqüência de URL encoded |
URLEncode | strValue | String | Codifica uma string para um valor de URL legal. Exemplo: HTTPObj.URL = “http://www.teste.com.br?” |
Resgatando dados de uma URL
<%
' Cria uma instância do controle
Set AspHTTP = Server.CreateObject("AspHTTP.Conn")
' Informa a URL da página a ser consultada
AspHTTP.Url = "http://www.asphttp.com.br/asphttp.asp"
' Resgada o resultado
str_Resultado = AspHTTP.GetURL
' Tira o objeto da memória
Set AspHTTP = Nothing
' Imprime o valor resgatado na tela.
Response.Write str_Resultado%>
Postando dados para uma URL
<%
' Cria uma instância do controle
Set AspHTTP = Server.CreateObject("AspHTTP.Conn")
' Informa a URL da página a ser consultada
AspHTTP.Url = "http://www.asphttp.com.br/asphttp.asp"
' Envia os dados para a página
AspHTTP.PostData =
"campo1=Valor1&campo2=Valor2&campo3=Valor3&campo4=Valor4"
' Informa que o método da consulta
AspHTTP.RequestMethod = "POST"
' Resgada o resultado
str_Resultado = AspHTTP.GetURL
' Tira o objeto da memória
Set AspHTTP = Nothing
' Imprime o valor resgatado na tela.
Response.Write
str_Resultado%>
Mais informações:
http://www.serverobjects.com/products.html
Qualquer dúvida ou comentário, fique à vontade!