This snippet shows how to call a REST-API via curl. It also tells you how you can do a Basic-HTTP-Authentification to legitimate the call.
This snippet shows how to call a REST-API via curl. It also tells you how you can do a Basic-HTTP-Authentification to legitimate the call. // Get it the REST way over Curl $mCurl = curl_init(); curl_setopt($mCurl, CURLOPT_URL, $sEndpoint); curl_setopt($mCurl, CURLOPT_RETURNTRANSFER, true); curl_setopt($mCurl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($mCurl, CURLOPT_USERPWD, "$sUsername:$sPassword"); // Authentication via http-auth curl_setopt($mCurl, CURLOPT_RETURNTRANSFER, 1); $mCurlResponse = curl_exec($mCurl); if(!$mCurlResponse){ throw new Exception("Rest call failed! Call-Data:\n" . print_r(curl_getinfo($mCurl), true)); } // deal with return http-codes: // 200 (all Codes starting with 2xx): Call and processing where successful. // 400 (all Codes starting with 4xx): Call fails - request contains failure // 500 (all Codes starting with 5xx): Server processing failure $sStatusCode = curl_getinfo($mCurl, CURLINFO_HTTP_CODE); $sCallUrl = curl_getinfo($mCurl, CURLINFO_EFFECTIVE_URL); echo $mCurlResponse . "\n"; curl_close($mCurl); // OK if($sStatusCode >= 200 && $sStatusCode < 400){ //make a SimpleXML Object out of response libxml_clear_errors(); //clear Error Buffer libxml_use_internal_errors(true); //put on error collection #$oXml = simplexml_load_file('/var/www/typomage/app/code/local/SHELDON/Tradebyte/ExcampleData/products.xml'); $oXml = simplexml_load_string($mCurlResponse); if(!$oXml){ $aErrors = libxml_get_errors(); // get xml parsing errors throw new Exception("Error on loading response XML!:\n" . print_r($aErrors)); } return $oXml; } // Call fails - request contains failure elseif($sStatusCode >=400 && $sStatusCode < 500){ throw new Exception("Call fails - request contains failure! ($sStatusCode)\nCall was: $sCallUrl\n\nRaw-Return:\n$mCurlResponse"); } // Server processing failure elseif($sStatusCode >= 500){ throw new Exception("Server processing failure! ($sStatusCode)\nCall was: $sCallUrl\n\nRaw-Return:\n$mCurlResponse"); } // Unexpected status else{ throw new Exception("Unexpected HTTP-Status-Code! ($sStatusCode)\nCall was: $sCallUrl\n\nRaw-Return:\n$mCurlResponse"); }