Como publicar dados JSON com PHP CURL
- 823
- 24
- Leroy Lebsack
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:
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.
- « Como redirecionar seu site para https atrás de um balanceador de carga da AWS
- Como instalar o apache/php-fpm no Ubuntu 16.04 LTS »