Como publicar dados JSON com PHP CURL

Como publicar dados JSON com PHP CURL

Ao trabalhar com APIs, é comum enviar e receber dados no formato json. No PHP, você pode usar a biblioteca CURL para enviar solicitações HTTP, incluindo o envio de dados JSON em uma solicitação de postagem. Neste artigo, mostraremos como publicar dados JSON com PHP Curl em um guia passo a passo.

Etapa 1: defina os dados de URL e JSON

O primeiro passo é definir o URL para o qual você deseja enviar a solicitação e os dados JSON que deseja enviar no corpo de solicitação. Para este exemplo, usaremos um exemplo de dados JSON:

$ data = array ('nome' => 'John doe', 'email' => 'John [email protected] ',' telefone '=>' 1234567890 '); $ json = json_encode ($ dados);
1234567$ data = array ('nome' => 'John Doe', 'email' => '[email protegido]', 'telefone' => '1234567890'); $ json = json_encode ($ dados);

Neste exemplo, criamos uma variedade de dados e os codificamos em um JSON string usando o JSON_ENCODE () função.

Etapa 2: Defina as opções de Curl

A próxima etapa é definir as opções de CLL para a solicitação, incluindo o URL, o método de solicitação e o corpo de solicitação. Aqui está um exemplo de como definir as opções de curl:

$ url = 'https: // Exemplo.com/api/create '; $ ch = curl_init ($ url); Curl_SESTOPT ($ CH, Curlopt_ReturntRansfer, True); Curl_SESTOPT ($ CH, Curlot_customRequest, "Post"); Curl_SESTOPT ($ CH, Curlopt_Postfields, $ JSON); Curl_SESTOPT ($ CH, Curlopt_Httpheader, Array ('Content-Type: Application/Json', 'Length-Length:' . strlen ($ json)));
12345678910$ url = 'https: // Exemplo.com/api/create '; $ ch = curl_init ($ url); Curl_setopt ($ CH, Curlopt_ReTurntRansfer, True); Curl_SETOPT ($ CH, Curlopt_customRequest, "Post"); Curl_setoPt ($ ch, Curlopt_Postfields, $ JSON); ', 'Comprimento do conteúdo: ' . strlen ($ json)));

Neste exemplo, definimos as seguintes opções:

  • Curlopt_returnTransfer: Defina como true para retornar a resposta como uma string em vez de emitá -la diretamente para a tela.
  • Curlopt_customRequest: Definir como "postar" para especificar que estamos enviando uma solicitação de postagem.
  • Curlopt_Postfields: Defina para os dados JSON que queremos enviar no órgão de solicitação.
  • Curlopt_httpheader: Defina como uma variedade de cabeçalhos, incluindo o cabeçalho do tipo de conteúdo para especificar que estamos enviando dados JSON e o cabeçalho de comprimento de conteúdo para especificar o comprimento dos dados JSON.

Etapa 3: envie a solicitação e lide com a resposta

A etapa final é enviar a solicitação usando o curl_exec () função e lidar com a resposta. Aqui está um exemplo de como fazer isso:

$ resposta = curl_exec ($ CH); if (curl_errno ($ ch)) echo 'error:' . curl_error ($ ch); else echo $ resposta; curl_close ($ ch);
1234567$ resposta = curl_exec ($ ch); if (curl_errno ($ ch)) echo 'erro:' . curl_error ($ ch); else echo $ resposta; curl_close ($ ch);

Neste exemplo, usamos o curl_exec () função para enviar a solicitação e armazenar a resposta na variável de resposta $. Também checamos qualquer erro usando o curl_errno () função e exibiram a mensagem de erro se houve um erro. Finalmente, fechamos a alça de curl usando o curl_close () função.

Etapa 4: script PHP completo

Depois de combinar o código acima, você receberá um script PHP funcional completo que pode postar dados JSON para APIs remotas.

'John Doe', 'email' => '[email protected] ',' telefone '=>' 1234567890 '); $ json = json_encode ($ dados); $ url = 'https: // Exemplo.com/api/create '; $ ch = curl_init ($ url); Curl_SESTOPT ($ CH, Curlopt_ReturntRansfer, True); Curl_SESTOPT ($ CH, Curlot_customRequest, "Post"); Curl_SESTOPT ($ CH, Curlopt_Postfields, $ JSON); Curl_SESTOPT ($ CH, Curlopt_Httpheader, Array ('Content-Type: Application/Json', 'Length-Length:' . strlen ($ json))); $ resposta = curl_exec ($ CH); if (curl_errno ($ ch)) echo 'error:' . curl_error ($ ch); else echo $ resposta; curl_close ($ ch); ?>
1234567891011121314151617181920212223242526272829 'John Doe', 'email' => '[email protegido]', 'telefone' => '1234567890'); $ json = json_encode ($ dados); $ url = 'https: // exemplo.com/api/create '; $ ch = curl_init ($ url); Curl_setopt ($ CH, Curlopt_ReTurntRansfer, True); Curl_SETOPT ($ CH, Curlopt_customRequest, "Post"); Curl_setoPt ($ ch, Curlopt_Postfields, $ JSON); ', 'Comprimento do conteúdo: ' . strlen ($ json))); $ resposta = curl_exec ($ ch); if (curl_errno ($ ch)) echo 'erro:' . curl_error ($ ch); else echo $ resposta; curl_close ($ ch); ?>

Salve o conteúdo do arquivo e execute isso através da interface da linha de comando php.

Conclusão

Neste artigo, mostramos como postar dados JSON com PHP Curl em um guia passo a passo. Ao definir os dados de URL e JSON, definir as opções de CLL e enviar a solicitação e lidar com a resposta, você pode enviar facilmente dados JSON em uma solicitação de postagem usando PHP CURL.