I am using Curl to get a request from an REST API. Here my Code:
#Curl init
$ch = curl_init('https://192.168.0.1/api/invoke/LicenseRequest');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Connection: Keep-Alive',
'Accept: application/json'
));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
#Username und PW
curl_setopt($ch, CURLOPT_USERPWD, "****:****");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
#Post
$post = [];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
When I echo $response this show up (gettype returned string):
HTTP/1.1 200 OK Cache-Control: no-cache,private,no-store,must-revalidate,max-stale=0,post-check=0,pre-check=0 Pragma: no-cache Content-Length: 733 Content-Type: application/json Expires: Wed, 23 May 2018 09:53:48 GMT Server: Microsoft-***** Date: Thu, 24 May 2018 09:53:48 GMT { "error": null, "token": null, "statusVersion": 2, "statusCode": "succeeded", "percentProgress": null, "statusText": null, "result": { "productKey": "************", "productVersion": "10.2.3.12921", "timestamp": "2018-05-24T09:53:48.2029026Z", "machineName": "******", "configuredInstances": 3, "configuredInstanceHosts": 2, "configuredClientAccessServers": 1, "instanceData": [ { "id": "l_container1", "usedLicenseCount": 912 }, { "id": "l_container2", "usedLicenseCount": 7 }, { "id": "l_container3", "usedLicenseCount": 2 } ] }, "logOutput": null }
So far, so good I think. Now I want to parse the "instanceData". I think I have to use the json_decode($response, true); to create an array.
So:
$result = json_decode($response, true);
echo $result;
But when I print that per echo, the field is empty. I don't get an error, but the site is blank.
Sorry for my english, I hope you can help me.