{"id":16943,"date":"2026-07-21T11:28:33","date_gmt":"2026-07-21T14:28:33","guid":{"rendered":"https:\/\/www.homehost.com.br\/blog\/?p=16943"},"modified":"2026-07-21T11:32:46","modified_gmt":"2026-07-21T14:32:46","slug":"curl-php","status":"publish","type":"post","link":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/","title":{"rendered":"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>O cURL \u00e9 a forma mais usada de fazer requisi\u00e7\u00f5es HTTP em PHP \u2014 consumir uma API, enviar dados a outro servidor, baixar o conte\u00fado de uma URL. Diferente do <code>file_get_contents()<\/code>, ele funciona mesmo com o <code>allow_url_fopen<\/code> desligado e d\u00e1 controle total sobre a requisi\u00e7\u00e3o: m\u00e9todo, cabe\u00e7alhos, autentica\u00e7\u00e3o, tempo limite.<\/strong> No PHP, o cURL \u00e9 usado atrav\u00e9s de quatro fun\u00e7\u00f5es principais: <code>curl_init()<\/code>, <code>curl_setopt()<\/code>, <code>curl_exec()<\/code> e <code>curl_close()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este guia mostra o essencial: como montar uma requisi\u00e7\u00e3o GET e POST, enviar cabe\u00e7alhos e JSON, lidar com autentica\u00e7\u00e3o, tratar erros \u2014 e, no fim, como pegar um comando <code>curl<\/code> de terminal (aqueles que aparecem na documenta\u00e7\u00e3o de APIs) e convert\u00ea-lo em c\u00f3digo PHP.<\/p>\n\n\n\n<div style=\"border:1px solid #d6e4fb; border-left:4px solid #1a73e8; background:#f4f8fe; border-radius:8px; padding:18px 22px; margin:24px 0; font-family:Arial, Helvetica, sans-serif;\">\n  <div style=\"font-weight:700; color:#0b3d91; margin-bottom:6px; text-transform:uppercase; letter-spacing:.05em; font-size:14px;\">Resposta r\u00e1pida<\/div>\n  <p style=\"color:#0b3d91; line-height:1.65; margin:0 0 12px;\">Uma requisi\u00e7\u00e3o GET b\u00e1sica com cURL no PHP tem quatro passos:<\/p>\n  <div style=\"background:#0b3d91; border-radius:6px; padding:12px 14px; margin:0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n    <code style=\"color:#f1f5f9; font-size:13px; line-height:1.7; white-space:pre;\">$ch = curl_init('https:\/\/api.exemplo.com\/dados');\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$resposta = curl_exec($ch);\ncurl_close($ch);<\/code>\n  <\/div>\n  <p style=\"color:#0b3d91; line-height:1.65; margin:12px 0 0;\">O <code>CURLOPT_RETURNTRANSFER<\/code> faz o <code>curl_exec()<\/code> retornar a resposta como string, em vez de imprimi-la direto. \u00c9 a op\u00e7\u00e3o que voc\u00ea quase sempre vai querer.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Conte\u00fado<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#O_que_e_o_cURL_no_PHP\" title=\"O que \u00e9 o cURL no PHP\">O que \u00e9 o cURL no PHP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Requisicao_GET\" title=\"Requisi\u00e7\u00e3o GET\">Requisi\u00e7\u00e3o GET<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Requisicao_POST\" title=\"Requisi\u00e7\u00e3o POST\">Requisi\u00e7\u00e3o POST<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Enviar_cabecalhos_headers\" title=\"Enviar cabe\u00e7alhos (headers)\">Enviar cabe\u00e7alhos (headers)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Enviar_JSON\" title=\"Enviar JSON\">Enviar JSON<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Autenticacao_basica\" title=\"Autentica\u00e7\u00e3o b\u00e1sica\">Autentica\u00e7\u00e3o b\u00e1sica<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Tratar_erros_e_ver_o_codigo_de_resposta\" title=\"Tratar erros e ver o c\u00f3digo de resposta\">Tratar erros e ver o c\u00f3digo de resposta<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Como_converter_um_comando_curl_terminal_para_PHP\" title=\"Como converter um comando curl (terminal) para PHP\">Como converter um comando curl (terminal) para PHP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Perguntas_frequentes\" title=\"Perguntas frequentes\">Perguntas frequentes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#Conclusao\" title=\"Conclus\u00e3o\">Conclus\u00e3o<\/a><\/li><\/ul><\/nav><\/div>\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_que_e_o_cURL_no_PHP\"><\/span>O que \u00e9 o cURL no PHP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O <strong>cURL<\/strong> \u00e9 uma biblioteca de transfer\u00eancia de dados que suporta <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/o-que-e-http\/\">HTTP<\/a>, <a href=\"https:\/\/www.homehost.com.br\/blog\/ssl\/https\/\">HTTPS<\/a>, <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/o-que-e-ftp\/\">FTP<\/a> e v\u00e1rios outros protocolos. No <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/o-que-e-php\/\">PHP<\/a>, ela \u00e9 exposta pela extens\u00e3o <code>php-curl<\/code>, que na maioria das hospedagens j\u00e1 vem ativada. Com ela, o seu c\u00f3digo pode agir como um cliente HTTP: fazer requisi\u00e7\u00f5es a outros servidores e receber as respostas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 a ferramenta padr\u00e3o para <strong>consumir APIs<\/strong>, integrar servi\u00e7os externos (gateways de pagamento, envio de e-mail, redes sociais), baixar arquivos remotos e testar endpoints. Toda requisi\u00e7\u00e3o cURL em PHP segue o mesmo esqueleto de quatro fun\u00e7\u00f5es:<\/p>\n\n\n\n<div style=\"overflow-x:auto; margin:24px 0;\">\n<table style=\"width:100%; border-collapse:collapse; font-family:Arial, Helvetica, sans-serif; font-size:14.5px; min-width:520px;\">\n  <thead>\n    <tr style=\"background-color:#1a73e8; color:#ffffff; text-align:left;\">\n      <th style=\"padding:12px 14px; border:1px solid #1a73e8;\">Fun\u00e7\u00e3o<\/th>\n      <th style=\"padding:12px 14px; border:1px solid #1a73e8;\">O que faz<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr style=\"background-color:#f5f7fa;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>curl_init()<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">Inicia uma sess\u00e3o cURL (opcionalmente j\u00e1 com a URL)<\/td>\n    <\/tr>\n    <tr style=\"background-color:#ffffff;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>curl_setopt()<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">Define as op\u00e7\u00f5es da requisi\u00e7\u00e3o (m\u00e9todo, cabe\u00e7alhos, dados&#8230;)<\/td>\n    <\/tr>\n    <tr style=\"background-color:#f5f7fa;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>curl_exec()<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">Executa a requisi\u00e7\u00e3o e retorna a resposta<\/td>\n    <\/tr>\n    <tr style=\"background-color:#ffffff;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>curl_close()<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">Encerra a sess\u00e3o e libera os recursos<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Requisicao_GET\"><\/span>Requisi\u00e7\u00e3o GET<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O exemplo mais simples: buscar dados de uma URL. O ponto-chave \u00e9 a op\u00e7\u00e3o <code><strong>CURLOPT_RETURNTRANSFER<\/strong><\/code>, que faz a resposta ser <strong>retornada<\/strong> como string (sem ela, o cURL imprime a resposta direto na sa\u00edda):<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">&lt;?php\n$ch = curl_init('https:\/\/api.exemplo.com\/usuarios');\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n$resposta = curl_exec($ch);\ncurl_close($ch);\n\necho $resposta;\n<\/code>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Requisicao_POST\"><\/span>Requisi\u00e7\u00e3o POST<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para enviar dados (criar um registro, submeter um formul\u00e1rio a uma API), voc\u00ea ativa o modo POST com <code><strong>CURLOPT_POST<\/strong><\/code> e passa os dados em <code><strong>CURLOPT_POSTFIELDS<\/strong><\/code>:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">&lt;?php\n$ch = curl_init('https:\/\/api.exemplo.com\/usuarios');\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, [\n    'nome'  => 'Maria',\n    'email' => 'maria@exemplo.com',\n]);\n\n$resposta = curl_exec($ch);\ncurl_close($ch);\n<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Passar um array em <strong><code>CURLOPT_POSTFIELDS<\/code> <\/strong>envia os dados como formul\u00e1rio (<code>application\/x-www-form-urlencoded<\/code> ou <code>multipart<\/code>). Para enviar JSON, veja mais abaixo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Enviar_cabecalhos_headers\"><\/span>Enviar cabe\u00e7alhos (headers)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Muitas APIs exigem cabe\u00e7alhos \u2014 um token de autentica\u00e7\u00e3o, o tipo de conte\u00fado. Use <strong><code>CURLOPT_HTTPHEADER<\/code> <\/strong>com um array de strings:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">curl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Authorization: Bearer SEU_TOKEN',\n    'Content-Type: application\/json',\n]);\n<\/code>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Enviar_JSON\"><\/span>Enviar JSON<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O caso mais comum ao consumir APIs modernas: enviar um corpo em JSON. Voc\u00ea codifica os dados com <code><strong>json_encode()<\/strong><\/code>, passa o resultado em <strong><code>CURLOPT_POSTFIELDS<\/code> <\/strong>e declara o <code>Content-Type<\/code>:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">&lt;?php\n$dados = ['nome' => 'Maria', 'plano' => 'pro'];\n\n$ch = curl_init('https:\/\/api.exemplo.com\/usuarios');\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dados));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Content-Type: application\/json',\n]);\n\n$resposta = curl_exec($ch);\n$dadosResposta = json_decode($resposta, true);\ncurl_close($ch);\n<\/code>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Autenticacao_basica\"><\/span>Autentica\u00e7\u00e3o b\u00e1sica<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para APIs que usam autentica\u00e7\u00e3o HTTP b\u00e1sica (usu\u00e1rio e senha), use <code><strong>CURLOPT_USERPWD<\/strong><\/code>:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">curl_setopt($ch, CURLOPT_USERPWD, 'usuario:senha');\n<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Para autentica\u00e7\u00e3o por token (Bearer), use o cabe\u00e7alho <code>Authorization<\/code>, como mostrado na se\u00e7\u00e3o de headers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tratar_erros_e_ver_o_codigo_de_resposta\"><\/span>Tratar erros e ver o c\u00f3digo de resposta<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uma requisi\u00e7\u00e3o pode falhar (servidor fora do ar, timeout, SSL) ou retornar um status de erro (<a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/erro-404-not-found\/\">404<\/a>, <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/http-erro-500\/\">500<\/a>). Sempre verifique os dois:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">$resposta = curl_exec($ch);\n\nif ($resposta === false) {\n    \/\/ Falha na conex\u00e3o (timeout, DNS, SSL...)\n    echo 'Erro cURL: ' . curl_error($ch);\n} else {\n    \/\/ Requisi\u00e7\u00e3o completou; veja o status HTTP\n    $codigo = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n    echo \"Status: $codigo\";\n}\ncurl_close($ch);\n<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">O <code>curl_error()<\/code> traz a mensagem de uma falha de conex\u00e3o; o <code><strong>curl_getinfo()<\/strong><\/code> com <strong><code>CURLINFO_HTTP_CODE<\/code> <\/strong>traz o <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/status-http-o-que-sao-codigos-de-resposta\/\">status HTTP<\/a> da resposta (200, 404, 500&#8230;). Uma requisi\u00e7\u00e3o pode &#8220;ter sucesso&#8221; no cURL e ainda assim devolver um 404 \u2014 por isso os dois cheques.<\/p>\n\n\n\n<div style=\"border:1px solid #f0d9a8; border-left:4px solid #e0a800; background:#fffaf0; border-radius:8px; padding:18px 22px; margin:24px 0; font-family:Arial, Helvetica, sans-serif;\">\n  <div style=\"font-weight:700; color:#8a6d00; margin-bottom:6px; text-transform:uppercase; letter-spacing:.05em; font-size:14px;\">&#x26a0;&#xfe0f; Nunca desative a verifica\u00e7\u00e3o de SSL<\/div>\n  <p style=\"color:#8a6d00; line-height:1.65; margin:0;\">Ao topar com um erro de SSL, muitos tutoriais sugerem <code>CURLOPT_SSL_VERIFYPEER = false<\/code> como &#8220;solu\u00e7\u00e3o&#8221;. Isso desliga a verifica\u00e7\u00e3o do certificado e abre a porta para ataques de intercepta\u00e7\u00e3o (man-in-the-middle). N\u00e3o fa\u00e7a isso em produ\u00e7\u00e3o. O certo \u00e9 manter a verifica\u00e7\u00e3o ligada e, se necess\u00e1rio, apontar um pacote de certificados v\u00e1lido (CA bundle) atualizado no servidor.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_converter_um_comando_curl_terminal_para_PHP\"><\/span>Como converter um comando curl (terminal) para PHP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A documenta\u00e7\u00e3o de muitas APIs mostra exemplos como um comando <code>curl<\/code> de terminal. Traduzir para PHP \u00e9 direto quando voc\u00ea conhece o mapa. Veja este comando:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">curl -X POST https:\/\/api.exemplo.com\/pedidos \\\n  -H \"Authorization: Bearer TOKEN\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\"produto\":\"livro\",\"qtd\":2}'<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Cada parte do comando tem um equivalente em PHP:<\/p>\n\n\n\n<div style=\"overflow-x:auto; margin:24px 0;\">\n<table style=\"width:100%; border-collapse:collapse; font-family:Arial, Helvetica, sans-serif; font-size:14.5px; min-width:520px;\">\n  <thead>\n    <tr style=\"background-color:#0b3d91; color:#ffffff; text-align:left;\">\n      <th style=\"padding:12px 14px; border:1px solid #0b3d91;\">No terminal<\/th>\n      <th style=\"padding:12px 14px; border:1px solid #0b3d91;\">No PHP<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr style=\"background-color:#f5f7fa;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>-X POST<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>CURLOPT_POST<\/code> ou <code>CURLOPT_CUSTOMREQUEST<\/code><\/td>\n    <\/tr>\n    <tr style=\"background-color:#ffffff;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>-H \"...\"<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>CURLOPT_HTTPHEADER<\/code> (array)<\/td>\n    <\/tr>\n    <tr style=\"background-color:#f5f7fa;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>-d '...'<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>CURLOPT_POSTFIELDS<\/code><\/td>\n    <\/tr>\n    <tr style=\"background-color:#ffffff;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>-u user:pass<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>CURLOPT_USERPWD<\/code><\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">O comando acima, traduzido para PHP, fica assim:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">&lt;?php\n$ch = curl_init('https:\/\/api.exemplo.com\/pedidos');\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Authorization: Bearer TOKEN',\n    'Content-Type: application\/json',\n]);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, '{\"produto\":\"livro\",\"qtd\":2}');\n\n$resposta = curl_exec($ch);\ncurl_close($ch);\n<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">O padr\u00e3o \u00e9 sempre o mesmo: a URL vai no <code><strong>curl_init()<\/strong><\/code>, e cada flag do terminal (<strong><code>-X<\/code>, <code>-H<\/code>, <code>-d<\/code>, <code>-u<\/code><\/strong>) vira uma op\u00e7\u00e3o correspondente no <code><strong>curl_setopt()<\/strong><\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perguntas_frequentes\"><\/span>Perguntas frequentes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O que \u00e9 o cURL no PHP?<\/strong><br>\u00c9 a forma de fazer requisi\u00e7\u00f5es HTTP a partir do c\u00f3digo PHP, usando a extens\u00e3o php-curl. Com ele, o seu script atua como cliente HTTP: consome APIs, envia dados a outros servidores e baixa conte\u00fado remoto. As requisi\u00e7\u00f5es seguem quatro fun\u00e7\u00f5es \u2014 curl_init(), curl_setopt(), curl_exec() e curl_close().<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como fazer uma requisi\u00e7\u00e3o GET com cURL no PHP?<\/strong><br>Inicie a sess\u00e3o com curl_init() passando a URL, defina curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) para receber a resposta como string, execute com curl_exec() e feche com curl_close(). O CURLOPT_RETURNTRANSFER \u00e9 essencial: sem ele, a resposta \u00e9 impressa direto na sa\u00edda em vez de retornada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como enviar dados por POST com cURL no PHP?<\/strong><br>Ative o POST com curl_setopt($ch, CURLOPT_POST, true) e passe os dados em CURLOPT_POSTFIELDS. Para dados de formul\u00e1rio, use um array. Para JSON, use json_encode() nos dados e adicione o cabe\u00e7alho Content-Type: application\/json com CURLOPT_HTTPHEADER.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como ver o c\u00f3digo de status HTTP da resposta?<\/strong><br>Use curl_getinfo($ch, CURLINFO_HTTP_CODE) depois do curl_exec(). Ele retorna o status HTTP (200, 404, 500&#8230;). Isso \u00e9 importante porque uma requisi\u00e7\u00e3o pode completar com sucesso no cURL e mesmo assim devolver um erro como 404 \u2014 o curl_exec() retornar false indica falha de conex\u00e3o, n\u00e3o status de erro HTTP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como converter um comando curl do terminal para PHP?<\/strong><br>Mapeie cada flag para uma op\u00e7\u00e3o do cURL: a URL vai no curl_init(); -X vira CURLOPT_POST ou CURLOPT_CUSTOMREQUEST; -H (cabe\u00e7alhos) vira CURLOPT_HTTPHEADER como array; -d (dados) vira CURLOPT_POSTFIELDS; e -u (autentica\u00e7\u00e3o) vira CURLOPT_USERPWD. O padr\u00e3o de tradu\u00e7\u00e3o \u00e9 sempre o mesmo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>cURL ou file_get_contents: qual usar?<\/strong><br>O cURL \u00e9 mais completo e recomendado: funciona mesmo com o allow_url_fopen desligado e d\u00e1 controle sobre m\u00e9todo, cabe\u00e7alhos, autentica\u00e7\u00e3o e timeout. O file_get_contents() \u00e9 mais simples para uma leitura r\u00e1pida de URL, mas depende do allow_url_fopen ativo e oferece pouco controle. Para consumir APIs, prefira o cURL.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\"@type\":\"Question\",\"name\":\"O que \u00e9 o cURL no PHP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u00c9 a forma de fazer requisi\u00e7\u00f5es HTTP a partir do c\u00f3digo PHP, usando a extens\u00e3o php-curl. Com ele, o seu script atua como cliente HTTP: consome APIs, envia dados a outros servidores e baixa conte\u00fado remoto. As requisi\u00e7\u00f5es seguem quatro fun\u00e7\u00f5es: curl_init(), curl_setopt(), curl_exec() e curl_close().\"}},\n    {\"@type\":\"Question\",\"name\":\"Como fazer uma requisi\u00e7\u00e3o GET com cURL no PHP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Inicie a sess\u00e3o com curl_init() passando a URL, defina curl_setopt com CURLOPT_RETURNTRANSFER true para receber a resposta como string, execute com curl_exec() e feche com curl_close(). O CURLOPT_RETURNTRANSFER \u00e9 essencial: sem ele, a resposta \u00e9 impressa direto na sa\u00edda em vez de retornada.\"}},\n    {\"@type\":\"Question\",\"name\":\"Como enviar dados por POST com cURL no PHP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ative o POST com curl_setopt CURLOPT_POST true e passe os dados em CURLOPT_POSTFIELDS. Para dados de formul\u00e1rio, use um array. Para JSON, use json_encode() nos dados e adicione o cabe\u00e7alho Content-Type application\/json com CURLOPT_HTTPHEADER.\"}},\n    {\"@type\":\"Question\",\"name\":\"Como ver o c\u00f3digo de status HTTP da resposta?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use curl_getinfo com CURLINFO_HTTP_CODE depois do curl_exec(). Ele retorna o status HTTP (200, 404, 500...). Isso \u00e9 importante porque uma requisi\u00e7\u00e3o pode completar com sucesso no cURL e mesmo assim devolver um erro como 404. O curl_exec() retornar false indica falha de conex\u00e3o, n\u00e3o status de erro HTTP.\"}},\n    {\"@type\":\"Question\",\"name\":\"Como converter um comando curl do terminal para PHP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Mapeie cada flag para uma op\u00e7\u00e3o do cURL: a URL vai no curl_init(); -X vira CURLOPT_POST ou CURLOPT_CUSTOMREQUEST; -H vira CURLOPT_HTTPHEADER como array; -d vira CURLOPT_POSTFIELDS; e -u vira CURLOPT_USERPWD. O padr\u00e3o de tradu\u00e7\u00e3o \u00e9 sempre o mesmo.\"}},\n    {\"@type\":\"Question\",\"name\":\"cURL ou file_get_contents: qual usar?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"O cURL \u00e9 mais completo e recomendado: funciona mesmo com o allow_url_fopen desligado e d\u00e1 controle sobre m\u00e9todo, cabe\u00e7alhos, autentica\u00e7\u00e3o e timeout. O file_get_contents() \u00e9 mais simples para uma leitura r\u00e1pida de URL, mas depende do allow_url_fopen ativo e oferece pouco controle. Para consumir APIs, prefira o cURL.\"}}\n  ]\n}\n<\/script>\n\n\n\n<div style=\"max-width:760px; margin:32px auto; background:linear-gradient(135deg,#1a73e8 0%,#0b3d91 100%); border-radius:16px; padding:32px 28px; font-family:Arial, Helvetica, sans-serif; color:#fff; box-shadow:0 10px 30px rgba(26,115,232,.25);\">\n  <div style=\"display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap;\">\n    <div style=\"flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:12px; background:rgba(255,255,255,.18);\">\n      <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"><\/line><polygon points=\"22 2 15 22 11 13 2 9 22 2\"><\/polygon><\/svg>\n    <\/div>\n    <div style=\"flex:1 1 320px; min-width:260px;\">\n      <div style=\"font-weight:800; line-height:1.25; margin-bottom:8px; font-size:19px;\">PHP pronto para integrar com qualquer API<\/div>\n      <p style=\"margin:0 0 18px; line-height:1.6; color:#dbe8fb;\">A hospedagem da Homehost j\u00e1 vem com a extens\u00e3o cURL ativada e PHP atualizado \u2014 \u00e9 s\u00f3 subir seu c\u00f3digo e come\u00e7ar a consumir APIs e integrar servi\u00e7os, com suporte em portugu\u00eas quando precisar.<\/p>\n      <a href=\"https:\/\/www.homehost.com.br\/hospedagem-de-sites\/\" style=\"display:inline-flex; align-items:center; gap:8px; background:#fff; color:#1a73e8; font-weight:700; text-decoration:none; padding:13px 26px; border-radius:10px; box-shadow:0 4px 12px rgba(0,0,0,.15);\">\n        Conhecer a hospedagem Homehost\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#1a73e8\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"><\/path><\/svg>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusao\"><\/span>Conclus\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O cURL no PHP se resume a um padr\u00e3o de quatro fun\u00e7\u00f5es \u2014 <code>curl_init()<\/code>, <code>curl_setopt()<\/code>, <code>curl_exec()<\/code>, <code>curl_close()<\/code> \u2014 e a diferen\u00e7a entre uma requisi\u00e7\u00e3o e outra est\u00e1 nas op\u00e7\u00f5es que voc\u00ea define pelo <code>curl_setopt()<\/code>: <code>CURLOPT_POST<\/code> para enviar dados, <code>CURLOPT_HTTPHEADER<\/code> para cabe\u00e7alhos, <code>CURLOPT_POSTFIELDS<\/code> para o corpo. Lembre sempre do <code>CURLOPT_RETURNTRANSFER<\/code> para receber a resposta como string, verifique tanto o <code>curl_error()<\/code> quanto o <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/status-http-o-que-sao-codigos-de-resposta\/\">status HTTP<\/a>, e nunca desligue a verifica\u00e7\u00e3o de SSL em produ\u00e7\u00e3o. Com esse esqueleto, voc\u00ea consome praticamente qualquer API \u2014 e traduzir um comando <code>curl<\/code> de documenta\u00e7\u00e3o para PHP vira quest\u00e3o de mapear cada flag para a sua op\u00e7\u00e3o.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O cURL \u00e9 a forma mais usada de fazer requisi\u00e7\u00f5es HTTP em PHP \u2014 consumir uma API, enviar dados a outro servidor, baixar o conte\u00fado de uma URL. Diferente do file_get_contents(), ele funciona mesmo com o allow_url_fopen desligado e d\u00e1 controle total sobre a requisi\u00e7\u00e3o: m\u00e9todo, cabe\u00e7alhos, autentica\u00e7\u00e3o, tempo limite. No PHP, o cURL \u00e9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":16945,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_helpful_status":1,"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[20],"tags":[],"class_list":["post-16943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais) | Homehost<\/title>\n<meta name=\"description\" content=\"Como usar o cURL no PHP para fazer requisi\u00e7\u00f5es HTTP: GET, POST, cabe\u00e7alhos, autentica\u00e7\u00e3o e JSON. Inclui como converter um comando curl do terminal para c\u00f3digo PHP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais) | Homehost\" \/>\n<meta property=\"og:description\" content=\"Como usar o cURL no PHP para fazer requisi\u00e7\u00f5es HTTP: GET, POST, cabe\u00e7alhos, autentica\u00e7\u00e3o e JSON. Inclui como converter um comando curl do terminal para c\u00f3digo PHP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Homehost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Homehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-21T14:28:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-21T14:32:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Gustavo Gallas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Homehost\" \/>\n<meta name=\"twitter:site\" content=\"@Homehost\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gustavo Gallas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/\",\"name\":\"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais) | Homehost\",\"isPartOf\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png\",\"datePublished\":\"2026-07-21T14:28:33+00:00\",\"dateModified\":\"2026-07-21T14:32:46+00:00\",\"author\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4\"},\"description\":\"Como usar o cURL no PHP para fazer requisi\u00e7\u00f5es HTTP: GET, POST, cabe\u00e7alhos, autentica\u00e7\u00e3o e JSON. Inclui como converter um comando curl do terminal para c\u00f3digo PHP.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#primaryimage\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png\",\"contentUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png\",\"width\":1536,\"height\":1024,\"caption\":\"Curl PHP - capa\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.homehost.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/\",\"name\":\"Homehost\",\"description\":\"Hospedagem De Sites\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4\",\"name\":\"Gustavo Gallas\",\"description\":\"Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do B\u00f3ris, seu pet de estima\u00e7\u00e3o. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos t\u00e9cnicos. Contato: gustavo.blog@homehost.com.br\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais) | Homehost","description":"Como usar o cURL no PHP para fazer requisi\u00e7\u00f5es HTTP: GET, POST, cabe\u00e7alhos, autentica\u00e7\u00e3o e JSON. Inclui como converter um comando curl do terminal para c\u00f3digo PHP.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/","og_locale":"pt_BR","og_type":"article","og_title":"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais) | Homehost","og_description":"Como usar o cURL no PHP para fazer requisi\u00e7\u00f5es HTTP: GET, POST, cabe\u00e7alhos, autentica\u00e7\u00e3o e JSON. Inclui como converter um comando curl do terminal para c\u00f3digo PHP.","og_url":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/","og_site_name":"Homehost","article_publisher":"https:\/\/www.facebook.com\/Homehost\/","article_published_time":"2026-07-21T14:28:33+00:00","article_modified_time":"2026-07-21T14:32:46+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png","type":"image\/png"}],"author":"Gustavo Gallas","twitter_card":"summary_large_image","twitter_creator":"@Homehost","twitter_site":"@Homehost","twitter_misc":{"Escrito por":"Gustavo Gallas","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/","url":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/","name":"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais) | Homehost","isPartOf":{"@id":"https:\/\/www.homehost.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#primaryimage"},"image":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png","datePublished":"2026-07-21T14:28:33+00:00","dateModified":"2026-07-21T14:32:46+00:00","author":{"@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4"},"description":"Como usar o cURL no PHP para fazer requisi\u00e7\u00f5es HTTP: GET, POST, cabe\u00e7alhos, autentica\u00e7\u00e3o e JSON. Inclui como converter um comando curl do terminal para c\u00f3digo PHP.","breadcrumb":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#primaryimage","url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png","contentUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png","width":1536,"height":1024,"caption":"Curl PHP - capa"},{"@type":"BreadcrumbList","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curl-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.homehost.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"cURL no PHP: como fazer requisi\u00e7\u00f5es HTTP (GET, POST e mais)"}]},{"@type":"WebSite","@id":"https:\/\/www.homehost.com.br\/blog\/#website","url":"https:\/\/www.homehost.com.br\/blog\/","name":"Homehost","description":"Hospedagem De Sites","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4","name":"Gustavo Gallas","description":"Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do B\u00f3ris, seu pet de estima\u00e7\u00e3o. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos t\u00e9cnicos. Contato: gustavo.blog@homehost.com.br"}]}},"modified_by":"ad_hmhst","jetpack_featured_media_url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/curl-php-capa.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/16943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=16943"}],"version-history":[{"count":1,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/16943\/revisions"}],"predecessor-version":[{"id":16944,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/16943\/revisions\/16944"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media\/16945"}],"wp:attachment":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=16943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=16943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=16943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}