PHP Code Samples
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 guide.
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));
}