Precisando saber como enviar uma requisição POST com o conteúdo no formato JSON? Então você encontrou o POST certo, vamos explorar e aprender como enviar uma requisição POST utilizando PHP puro.
O que você vai aprender?
- Enviar requisições POST contendo json usando PHP+cURL
- Receber uma requisição contendo Json
Quais são os requisitos?
- PHP moderno instalado (7.2+)
- Uma API de sua Preferência (incluímos uma de exemplo bem legal)
- Editor de texto
Enviando JSON
No exemplo abaixo vamos utilizar a função cURL nativa do PHP e chamar uma API de análise de sentimento. Para começar Vamos enviar uma frase “duvidosamente alegre/positiva” para testar a API.
O código está comentado e possuí algumas dicas confiram:
<?php // URL de SUA API $url = 'https://sentim-api.herokuapp.com/api/v1/'; // cria um resource cURL $ch = curl_init($url); // monte um array que conterá os campos a serem enviados // Vamos neste tutorial optar por usar um array para montar os campos de post. Este é o campo de form-data. // Nossa api específica espera um array em formato JSON com uma única chave "text" e seu respectivo conteúdo que será analisado. $data = array( 'text' => "For every minute you are angry you lose sixty seconds of happiness." ); // vamos usar a função json encode para transformar nosso array em uma string Json válida $corpo = json_encode($data); // agora vamos anexar o corpo em formato json da sua requisição curl_setopt($ch, CURLOPT_POSTFIELDS, $corpo); // defina o conteúdo do envio como json curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); // ative o recebimento de retorno da requisição curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // executa a requisição POST $resultado = curl_exec($ch); // encerra conexão e libera variável curl_close($ch); // 1 - Aqui estamos usando json_decode para transformar nossa resposta JSON em um objeto PHP. // 2- Em seguida usamos print_r passando o segundo parâmetro true para melhorar a legibilidade de objetos e arrays PHP // 3 - Por fim a tag html <pre> melhora a formatação de código no navegador echo '<pre>'.print_r(json_decode($resultado),true).'</pre>'; ?>
Recebendo JSON no PHP
Agora que já aprendemos como enviar JSON você vai ver que receber é ainda mais fácil. Basta utilizar a função file_get_contents, passando como parametro “php://input”, a partir daí qualquer requisição enviada para este arquivo php terá seu corpo capturado e exibido.
<?php //Para capturar o corpo JSON $json_convertido = json_decode(file_get_contents('php://input'), true); //Exibindo os dados enviados para seu arquivo PHP echo '<pre>'.print_r($json_convertido,true).'</pre>';
Recapitulando
E ai o que achou desta postagem, acredita que precisa melhorar em algo? Não entendeu alguma parte ou encontrou algum erro? Deixe um comentário.