I've been given the following example in order to post data to a API url
curl --request POST \
--url https://apiurl \
--header 'auth-token: {{token}}' \
--header 'content-type: application/json' \
--data '{
"user": {
"email": "my@email.com",
"name": "James",
"tel": "0000000"
}
}'
I got my cURL working using the following code but I need to post the user parameters as above like email, name, tel etc.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array('Cache-Control: no-cache', 'auth-token: '.$token)
));
$response = curl_exec($curl);
curl_close($curl);
How can I post the fields as the example states using my code?
This was already answered here: How to POST JSON Data With PHP cURL?
You just need to add like the following:
$payload = json_encode(['user'=> ['email'=>'test@example.com','name'=>'Joe','tel'=>'123e332']] );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $payload );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
i use in this way:
<?php
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER,1);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, array(
'data' => '{
"user": {
"email": "my@email.com",
"name": "James",
"tel": "0000000"
}
}'
));
$dados = curl_exec($handle);
curl_close($handle);
echo "$dados";
?>