Requisições com a biblioteca cURL no PHP

Requisições com a biblioteca cURL no PHPTema de hoje é a poderosa biblioteca cURL no PHP, com ela podemos enviar requisições e capturar retornos com diversos protocolos na WEB. 

É quase impossível encontrar um programador PHP que nunca teve que utilizar a biblioteca cURL para capturar conteúdo de um site, consumir Web Services ou comunicar com APIs espalhadas pela WEB.

Mesmo existindo diversas opções para essas necessidades no PHP a biblioteca cURL é de longe a escolha mais aconselhada, um dos principais motivos disso é o fato que muitas hospedagens desativam por motivos de segurança o uso da função file_get_contents() do PHP, impossibilitando requisições a conteúdos externos.

 

Introdução sobre a biblioteca cURL

Programadores PHP quando falam da biblioteca cURL geralmente a primeira coisa que vem a mente é requisições cURL no PHP, mas essa biblioteca desenvolvida por Daniel Stenberg inicialmente foi projetada para ser executada via linha de comando trocando arquivos entre diferentes terminais, atualmente são suportados diversos tipos de protocolos (http, https, ftp, gopher, telnet, dict, file, e outros).

Apesar de ter iniciado como utilitário de linha de comando atualmente possui ligações com mais de 30 linguagens de programação, para que essa integração ocorra é necessário instalar libcurl que possui as funcionalidades do cURL.

 

Instalando cURL no PHP para usuários Ubuntu

Para utilizarmos todos os recursos disponibilizados pela biblioteca cURL no PHP é necessário instalar algumas bibliotecas entre elas a libcurl, abra o terminal e execute o comando abaixo:

 

Após a instalação reinicie o servidor Apache:

 

Para verificar se a instalação ocorreu com sucesso e se a extensão cURL está habilitada, basta criar um script PHP e colocar nele o comando “echo phpinfo();”, ao ser executado no browser poderemos confirmar se a biblioteca está ativa, a página exibida deve conter a sessão “curl” como na imagem abaixo:

Post relacionado:  Conexão PDO com SQL Server 2008 e 2012 no Ubuntu | Dica

Biblioteca cURL habilitada

 

Comandos Básicos cURL

Vou explicar brevemente alguns comandos básicos para enviar uma requisição simples, mas existem diversas funções dessa biblioteca e também constantes pré-definidas que podem ser usadas com a função curl_setop().

curl_init() -> Essa função inicializa uma session cURL, tem que ser executado antes de qualquer comando cURL.

curl_setop() -> Essa é a função mais importante da biblioteca cURL, com ela podemos setar vários parâmetros para a session aberta.

curl_exec() -> Executa a session cURL e captura o retorno, essa função deve ser executada após ser iniciada e configurada uma session.

curl_getinfo() -> Retorna informações sobre a requisição, podemos obter o valor numérico Status Code HTTP exemplo (200, 301, 500 e etc)

curl_close() -> Fecha a session cURL aberta e libera todos os recursos.

Como observamos acima, com a função curl_setop() podemos setar diversas configurações para session que foi iniciada, podemos usar essa função para alterar o tipo de requisição que por padrão é sempre do tipo GET mas podemos alterar com o comando abaixo:

 

Enviando requisições GET

Nesse exemplo vou enviar uma requisição GET para página feed do meu blog que fornece um arquivo XML com os últimos 5 posts publicados, usando a biblioteca cURL no PHP. Como o objetivo desse post não é demonstrar leitura de arquivos XMLs com PHP, vou apenas transformar a string XML de retorno em objeto com a função simplexml_load_string() e percorrer com foreach() para exibir os posts que foram retornados no feed de retorno.

 

Resultado no Browser listando os últimos 5 posts que foram publicados no meu blog:

Retorno requisição GET com cURL

Enviando requisições POST

Para demonstrar requisições POST utilizando cURL criei um script PHP retorna_data.php que recebe dados em POST, se comparado ao script da requisição via GET há uma diferença porque nesse script existe a montagem e passagem do parâmetro para session cURL, nesse exemplo vou enviar um parâmetro “data” e será retornado a data do servidor no formato JSON.

retorna_data.php

 

Resultado no Browser exibindo o retorno com a data do servidor em JSON:

Retorno requisição POST com cURL

Assista o vídeo com os exemplos

 

Bom pessoal, neste post demonstrei funcionalidades básicas da biblioteca cURL no PHP, mas o poder dessa biblioteca é muito extenso e não caberia em apenas um post. Podemos utilizar essa biblioteca para diversos tipos de requisições, com diferentes configurações e como sempre deixo um link para documentação oficial do PHP sobre cURL.

Se você gostou desse post compartilhe nas redes sociais, até a próxima …

Show Buttons
Hide Buttons