Difference between revisions of "Receive JSON POST Data"

From Michael's Information Zone
Jump to navigation Jump to search
Line 27: Line 27:
 
<pre>
 
<pre>
 
curl -X POST -H "Content-Type: application/json" --data '{"test":"1"}' http://localhost
 
curl -X POST -H "Content-Type: application/json" --data '{"test":"1"}' http://localhost
 +
</pre>
 +
Again, but with a username/password
 +
<pre>
 +
curl --user test:test -X POST -H "Content-Type: application/json" --data '{"test":"1"}' http://localhost
 
</pre>
 
</pre>

Revision as of 15:57, 26 July 2018

Purpose

Request came across my desk for a web server to receive JSON POST data, providing web hooks for a business analyst to parse. On my end things were simple enough.

  1. Simple Apache server to receive requests.
  2. Basic Authentication
  3. Save the POST data to file (For now, but I feel this will be expanded in the near future)

Process

[1][2]This example will echo the posted data back to the client during testing, as well as save the file to disk.

<?php
$myFile = "testFile.txt";
$data = file_get_contents('php://input');
echo $data;
file_put_contents($myFile,$data);
?>

To further build on this, and to keep track of the received hooks, I wanted to add a date/time stamp to the file[3].

<?php
$today = date("mdY_His");
$myFile = "testFile_$today.txt";
$data = file_get_contents('php://input');
file_put_contents($myFile,$data);
?>

Testing

Used the following POST method with curl to test with.

curl -X POST -H "Content-Type: application/json" --data '{"test":"1"}' http://localhost

Again, but with a username/password

curl --user test:test -X POST -H "Content-Type: application/json" --data '{"test":"1"}' http://localhost