(Click to open topic with navigation)
All of these examples make use of the cURL PHP Extension. While this library is easy to use for GET and POST requests, it is somewhat more difficult to use for PUT and DELETE requests. Each will be covered in this topic.
Notice the use of the JSON PHP Extension's json_decode and json_encode functions.
GET
<?php $baseUrl = "http://localhost:8080/mws/rest"; $resource = "/jobs"; $username = "admin"; $password = "secret"; $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource"); $responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch); if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); } ?>
POST
<?php $baseUrl = "http://localhost:8080/mws/rest"; $resource = "/jobs"; $username = "admin"; $password = "secret"; $requestPayload = array( "commandFile"=>"/tmp/test.sh", "initialWorkingDirectory"=>"/tmp", "user"=>"adaptive", "requirements"=>array( array("requiredNodeCountMinimum"=>1) ) ); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource"); // Setup POST request curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestPayload)); curl_setopt($ch, CURLOPT_POST, 1); $responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch); if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); } ?>
PUT
<?php $baseUrl = "http://localhost:8080/mws/rest"; $resource = "/jobs/Moab.1"; $username = "admin"; $password = "secret"; $requestPayload = array( "holds"=>array("user") ); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource"); // Setup PUT request curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestPayload)); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); $responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch); if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); }
DELETE
<?php $baseUrl = "http://localhost:8080/mws/rest"; $resource = "/jobs/Moab.1"; $username = "admin"; $password = "secret"; $requestPayload = array( "holds"=>array("user") ); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource"); // Setup DELETE request curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); $responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch); if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); }
Related Topics