En mi máquina local, quiero usar cURL como cliente HTTP así:
curl -X POST -F 'email=derp@example.com' -F 'password=blink182' http://example.comLa instrucción curl anterior utiliza el método HTTP POST que se puede recuperar en PHP de la siguiente manera:
echo $_POST['email']; // derp@example.com echo $_POST['password']; // blink182 Sin embargo, lo que realmente quería son 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:
$input = json_decode( file_get_contents( 'php://input' ) ); echo $input->email; // derp@example.com echo $input->password; // blink182Lo que me lleva a mi pregunta, ¿cómo enviar datos de flujo de entrada de PHP usando curl?
Desde el sitio web de PHP :
php://inputes un flujo de solo lectura que le permite leer datos sin procesar del cuerpo de la solicitud.php://inputno está disponible conenctype="multipart/form-data".
Entonces, si especifica el Content-Type como application/json usando -H "Content-Type: application/json" , debe obtenerlo en el flujo de entrada
ejemplo completo:
curl -X POST https://reqbin.com/echo/post/json -H 'Content-Type: application/json' -d '{"email":"derp@example.com","password":"blink182"}'