O cURL(Client URL) tem sido o cliente HTTP de linha de comando preferido há décadas. É amplamente utilizado por desenvolvedores e administradores em todas as facetas do desenvolvimento web, como testes de APIs, busca de páginas web e até mesmo transferência de arquivos. NoScraping de dados da web, usamos principalmente o cURL para testar solicitações HTTP.
REST (Representational State Transfer) é um padrão usado para criar uma API (Application Programming Interface). Com uma API REST, um servidor é configurado para lidar com quatro tipos básicos de solicitação:GET,POST,PUTeDELETE. Cada um desses métodos é usado para interagir com um servidor web. Entraremos em mais detalhes ao longo deste artigo.
Introdução
Instalação
O cURL vem pré-instalado na maioria dos principais sistemas operacionais atuais. Ele é um elemento básico do Linux há muitos anos, mas agora também está incluído por padrão no macOS e no Windows. Você pode verificar a instalação do cURL com o seguinte comando.
curl --version
Se o cURL estiver instalado corretamente, você verá uma resposta semelhante a esta. Mais importante ainda, o comando --version deve exibir um número de versão. Abaixo, nosso número de versão é curl 7.81.0. O restante da saída é específico da versão e do sistema operacional.
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.18
Data de lançamento: 05/01/2022
Protocolos: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Recursos: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-Proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd
Se, por algum motivo, você não tiver o cURL instalado, poderá encontrar uma versão compatível com o seu sistema operacional na página de downloadsaqui.
<!–
- Como instalar o curl: seja breve, inclua um link para instruções específicas do sistema operacional
–>
Como usar o cURL
Fazendo uma solicitação GET
A solicitação HTTP mais comum é a solicitação GET. Usamos GET para obter informações. Quando você acessa uma página da web, seu navegador executa uma GET em segundo plano. Com o cURL, usamos o sinalizador GET para executá-la. O exemplo abaixo envia uma GET para https://jsonplaceholder.typicode.com/posts.
curl -X GET https://jsonplaceholder.typicode.com/posts
Quando executamos essa solicitação, obtemos as postagens como resposta. Abaixo, temos apenas um trecho da resposta.
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipitnsuscipit recusandae consequuntur expedita et cumnreprehenderit molestiae ut ut quas totamnnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"corpo": "est rerum tempore vitaensequi sint nihil reprehenderit dolor beatae ea dolores nequenfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendisnqui aperiam non debitis possimus qui neque nisi nulla"
},
{
"userId": 1,
"id": 3,
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
"body": "et iusto sed quo iurenvoluptatem occaecati omnis eligendi aut adnvoluptatem doloribus vel accusantium quis pariaturnmolestiae porro eius odio et labore et velit aut"
},
{
"userId": 1,
"id": 4,
"title": "eum et est occaecati",
"corpo": "ullam et saepe reiciendis voluptatem adipiscinsit amet autem assumenda provident rerum culpanquis hic commodi nesciunt rem tenetur doloremque ipsam iurenquis sunt voluptatem rerum illo velit"
},
{
"userId": 1,
"id": 5,
"title": "nesciunt quas odio",
"body": "repudiandae veniam quaerat sunt sednalias aut fugiat sit autem sed estnvoluptatem omnis possimus esse voluptatibus quisnest aut tenetur dolor neque"
},
<!–
- o que é uma solicitação GET?
–>
Fazendo uma solicitação POST
Usamos uma solicitação POST quando queremos enviar informações para um servidor para serem salvas em um banco de dados. Os exemplos mais comuns disso são as publicações nas redes sociais. O exemplo abaixo envia um POST para criar uma nova publicação usando a API.
curl -X POST https://jsonplaceholder.typicode.com/posts
-H "Content-Type: application/json"
-d '{
"title": "foo",
"body": "bar",
"userId": 1
}'
Após nossa solicitação, recebemos o objeto da postagem real como resposta.
{
"title": "foo",
"body": "bar",
"userId": 1,
"id": 101
}
Se você quiser saber mais sobre como enviar solicitaçõesPOSTdetalhadas, consulteeste guia.
Fazendo uma solicitação PUT
Como você acabou de aprender, as solicitações POST são usadas para criar um objeto em um banco de dados. Às vezes, queremos editar um objeto que já existe em um banco de dados. Para alterar um objeto existente, usamos uma solicitação PUT. O exemplo abaixo atualiza o corpo da nossa postagem anterior de bar para bar atualizado.
curl -X PUT https://jsonplaceholder.typicode.com/posts/1
-H "Content-Type: application/json"
-d '{
"id": 1,
"title": "foo",
"body": "updated bar",
"userId": 1
}'
Ao executá-lo, você recebe a seguinte resposta. Como você pode ver, o corpo da nossa postagem foi atualizado.
{
"id": 1,
"title": "foo",
"body": "barra atualizada",
"userId": 1
}
Fazendo uma solicitação DELETE
As solicitaçõesDELETE devem ser bastante autoexplicativas neste ponto. A solicitação DELETE é usada para remover um objeto existente de um banco de dados usando um identificador exclusivo. Neste caso, nosso identificador (id) é 1, ou postagem número um. O código abaixo remove a postagem que criamos anteriormente.
curl -X DELETE https://jsonplaceholder.typicode.com/posts/1
Como você pode ver, nossa resposta é apenas um objeto JSON vazio. A postagem foi excluída.
{}
cURL com Web Unlocker

Ao usar o cURL como Web Unlocker, você pode fazer solicitações HTTP da mesma forma que faria usando apenas o cURL. No entanto, o Web Unlocker oferece o poder do Proxy.
Com o Web Unlocker, você obtém segmentação geográfica e Resolução de CAPTCHA provenientes de alguns dos melhores proxies do mundo. O melhor de tudo é que esses proxies são gerenciados para você. Basta conectar o Proxy e continuar com o seu dia normalmente.
Depois de configurar o Web Unlocker, certifique-se de salvar seu nome de usuário, nome da zona e senha. Você precisará deles para autenticar sua conexão. No exemplo abaixo, configuramos nossa conexão para usar um Proxy baseado nos EUA.
curl -i --proxy brd.superproxy.io:33335 --proxy-user brd-customer-<SEU_NOME_DE_USUÁRIO>-zone-<SEU_NOME_DE_ZONA>-country-us:<SUA_SENHA> -k "https://geo.brdtest.com/mygeo.json"
-i: Informa ao cURL que queremos que os cabeçalhos sejam incluídos em nossa resposta. Isso é útil para fins de depuração.--Proxy brd.superproxy.io:33335 --Proxy-user brd-customer-<SEU_NOME_DE_USUÁRIO>-zona-<NOME_DA_SUA_ZONA>-country-us:<SUA_SENHA>--proxy brd.superproxy.io:33335: Isso informa ao cURL que queremos usar um Proxy localizado embrd.superproxy.io:33335.--proxy-user brd-customer-<SEU_NOME_DE_USUÁRIO>-zone-<NOME_DA_SUA_ZONA>-country-us:<SUA_SENHA>: Isso representa nossa string de autenticação. A string de autenticação é organizada da seguinte forma:<NOME de usuário>:<SENHA>. Com o Web Unlocker, seu nome de usuário completo inclui todos os seguintes elementos:brd-customer-<SEU_NOME_DE_USUÁRIO>-zone-<NOME_DA_SUA_ZONA>-country-us.
ké usado para informar ao cURL que queremos ignorar a certificação SSL. Se você estiver interessado em usar o Web Unlocker a longo prazo, pode baixar e instalar nosso certificado SSLaqui. Isso permitirá que sua máquina certifique automaticamente a conexão.
Você pode ver nossa resposta de exemplo abaixo. Como você pode ver, nossa localização está aparecendo em Nova Jersey.
{"country":"US","asn":{"asnum":20473,"org_name":"AS-VULTR"},"geo":{"city":"Piscataway","region":"NJ","region_name":"New Jersey","postal_code":"08854","latitude":40.5511,"longitude":-74.4606,"tz":"America/New_York","lum_city":"piscataway","lum_region":"nj"}}
Se você estiver interessado em saber mais sobre o Web Unlocker, dê uma olhada em nossoAPI Playground. É um ótimo lugar para experimentar e aprender mais sobre como fazer solicitações de API usando muitas linguagens diferentes e bibliotecas HTTP. Você pode aprender mais sobre como usar o cURL com Proxiesaqui.
Onde você pode chegar com o cURL?
Depois de ter um bom entendimento do cURL e do HTTP, você pode continuar a usar o HTTP praticamente em qualquer lugar. Você pode usar ferramentas GUI comoPostmaneInsomniapara testes gerais de API.
Com Python, você pode usarRequestsou até mesmo continuar usandoo cURL dentro do Python. Com JavaScript, você pode usarNode-FetchouAxiospara automatizar suas solicitações HTTP.
Se você deseja continuar usando ferramentas de linha de comando, também há várias opções disponíveis. Dê uma olhada no HTTPie e no wget. Ambas as ferramentas são ótimos utilitários de linha de comando e se comunicam muito bem com HTTP.
Conclusão
Quando se trata de clientes HTTP, o cURL tem sido o padrão de linha de comando há décadas e isso não vai mudar tão cedo. Seja você um desenvolvedor ou um administrador de sistemas, agora você tem o conjunto de habilidades necessário para o uso básico do cURL e uma compreensão razoável de como o HTTP funciona. Você pode atébaixar arquivose definircabeçalhos personalizadosusando o cURL. Agora que você sabe como usar o Web Unlocker com ele, pode ser realmente eficaz com HTTP, independentemente do que estiver fazendo. Se você é um desenvolvedor aspirante, aprenda a usar HTTP na linguagem de sua escolha.