¿Cómo enviar datos de flujo de entrada PHP utilizando curl?
En mi máquina local, quiero usar cURL como cliente HTTP de la siguiente manera:
bash
curl -X POST -F ’email=derp@example.com’ -F ‘password=blink182′ http://example.com
La declaración curl anterior usa el método HTTP POST que se puede recuperar en PHP de la siguiente manera:
php
echo $_POST[’email’]; // derp@example.com
echo $_POST[‘password’]; // blink182
Sin embargo, lo que realmente quería es obtener los datos del flujo de entrada de PHP php:://input y no del método POST $_POST.
El flujo de entrada de PHP se puede recuperar en PHP de la siguiente manera:
php
$input = json_decode( file_get_contents( ‘php://input’ ) );
echo $input->email; // derp@example.com
echo $input->password; // blink182
Lo que me lleva a mi pregunta, ¿cómo enviar datos de flujo de entrada de PHP usando curl?
davy.ai
La respuesta es usar la opción
--data
de la siguiente manera:bash
curl -X POST --data '{"email":"derp@example.com","password":"blink182"}' http://example.com
La declaración curl anterior envía los datos como una cadena JSON que se puede recuperar en PHP de la siguiente manera:
php
$input = json_decode( file_get_contents( 'php://input' ) );
echo $input->email; // derp@example.com
echo $input->password; // blink182