Manipulando Solicitações de HTTP em CF

A tag <CFHTTP> é uma ferramenta de uso geral para a criação e manipulação de solicitações dos resultados HTTP retornados. Ele permite você gerar tipos de solicitação padrão HTTP. Você pode usar as tags <cfhttpparam> incorporadas para especificar cabeçalhos de solicitação e conteúdo do corpo.
Quando ColdFusion recebe uma resposta a um pedido CFHTTP, pode colocar o corpo da resposta (se houver) em um arquivo ou a variável de cadeia cfhttp.FileContent.
Se o corpo do texto está estruturado como um conjunto de resultados, o ColdFusion pode colocar o texto do corpo em um objeto de consulta. Você também pode acessar os valores de todos os cabeçalhos retornados e especificar como lidar com status de erro e redirecionamentos, e especificar um tempo limite para evitar pedidos de enforcamento.
O protocolo HTTP é a espinha dorsal da World Wide Web e é usado para cada transação web. Porque a tag <CFHTTP> pode gerar a maioria dos tipos de solicitações, que proporciona uma flexibilidade significativa. Possíveis usos incluem:
  • Interação com web sites dinâmicos e serviços que não estão disponíveis como serviços web. (Use a tag <cfinvoke> para acessar serviços web SOAP.)
  • Obter o conteúdo de uma página HTML ou outro arquivo como uma imagem em um servidor web para uso em sua página CFML ou armazenamento em um arquivo.
  • Enviar um pedido de seguro para um servidor especificando o protocolo https no atributo url.
  • Utilizando o método POST para enviar um post estilo multipart / form-data a qualquer URL que pode lidar com esses dados e retornar resultados, inclusive os executáveis ​​CGI ou mesmo páginas outros ColdFusion.
  • Usando o método PUT para upload de arquivos para um servidor que não aceita solicitações FTP.
Esta tag pode, e para pedidos POST e PUT deve, ter um corpo que contém marcas cfhttpparam. Se essa marca tem tags <cfhttpparam>, ele deve ter uma tag </ CFHTTP> no final.
Para usar HTTPS com a tag <CFHTTP>, talvez você precise importar manualmente o certificado para cada servidor web para o keystore do JRE que o ColdFusion usa. Este procedimento não deve ser necessária se o certificado é assinado (emitida) por uma autoridade que o JSSE (Java Secure Sockets Extension) reconhece (por exemplo, Verisign), isto é, se a autoridade de assinatura é no cacerts já. No entanto, você pode precisar usar o procedimento se você estiver emitindo SSL (secure sockets layer) certificados de si mesmo.
Importar manualmente um certificado:
  1. Ir para uma página no servidor SSL em questão.
  2. Dê um duplo clique no ícone de cadeado.
  3. Clique na guia Detalhes.
  4. Clique em Copiar para Arquivo.
  5. Selecione a opção base64 e salve o arquivo.
  6. Copie o arquivo CER em C: \ ColdFusion8 \ runtime \ jre \ lib \ security (ou qualquer JRE ColdFusion está usando).
  7. Execute o seguinte comando no mesmo diretório (keytool.exe está localizada em C: \ CFusionMX7 \ runtime \ jre \ bin):
    keytool -import -keystore cacerts -alias giveUniqueName -file filename.cer
Exemplo:
<!--- Este exemplo exibe as informações fornecidas pelo Designer & Developer Center XML feed, http://www.adobe.com/desdev/resources/_resources.xml
Ver http://www.adobe.com/desdev/articles/xml_resource_feed.html para mais informações sobre este assunto. --->
<!--- Definir o endereço de URL. --->
<cfset urlAddress="http://www..com/desdev/resources/_resources.xml">
<!--- Use a tag <CFHTTP> para obter o conteúdo do arquivo representado por urladdress. Note que />, não é fim da tag, ele finaliza esta tag. --->
<cfhttp url="#urladdress#" method="GET" resolveurl="Yes" throwOnError="Yes"/>
<!--- Analisar o XML e saída de uma lista de recursos. --->
<cfset xmlDoc = XmlParse(CFHTTP.FileContent)>
<!--- Obter a matriz de elementos de recursos, o xmlChildren do XmlRoot. --->
<cfset resources=xmlDoc.xmlroot.xmlChildren>
<cfset numresources=ArrayLen(resources)>
<cfloop index="i" from="1" to="#numresources#">
<cfset item=resources[i]>
<cfoutput>
<strong><a href=#item.url.xmltext#>#item.title.xmltext#</a></strong><br>
<strong>Autor</strong>&nbsp;&nbsp;#item.author.xmltext#<br>
<strong>Aplica-se a estes produtos</strong><br>
<cfloop index="i" from="4" to="#arraylen(item.xmlChildren)#">
#item.xmlChildren[i].xmlAttributes.Name#<br>
</cfloop><br>
</cfoutput>

</cfloop>

Comentários

Postagens mais visitadas deste blog

Criando uma Variável em ColdFusion e em ASP

Definindo Valores Padrões para Variáveis

O que é ColdFusion? Para que serve?