Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to send PHP input stream data using curl?

POST

On my local machine, I want to use cURL as an HTTP client like so:

curl -X POST -F 'email=derp@example.com' -F 'password=blink182' http://example.com

The above curl statement uses the HTTP POST method which can be retrieved in PHP like so:

echo $_POST['email'];       // derp@example.com
echo $_POST['password'];    // blink182

php://input

However, what I really wanted is the data from the PHP input stream php:://input and not from the POST method $_POST.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

The PHP input stream can be retrieved in PHP like so:

$input = json_decode( file_get_contents( 'php://input' ) );
echo $input->email;     // derp@example.com
echo $input->password;  // blink182

Which brings me to my question, how to send PHP input stream data using curl?

>Solution :

From the PHP website:

php://input is a read-only stream that allows you to read raw data from the request body. php://input is not available with enctype="multipart/form-data".

So if you specify the Content-Type as application/json using -H "Content-Type: application/json" you ought to get it in the input stream

complete example:

curl -X POST https://reqbin.com/echo/post/json
   -H 'Content-Type: application/json'
   -d '{"email":"derp@example.com","password":"blink182"}'
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading