In questo tutorial creeremo una semplice interfaccia per chiamare webservices REST in PHP.
private function _run()
{
$headers = $this->_headers;
$curly = $result = array();
$mh = curl_multi_init();
foreach ($this->_requests as $id => $reg) {
$curly[$id] = curl_init();
$type = $reg[0];
$url = $reg[1];
$params = $reg[2];
if(!is_null($this->_user)){
curl_setopt($curly[$id], CURLOPT_USERPWD, $this->_user.‘:’.$this->_pass);
}
switch ($type) {
case self::DELETE:
curl_setopt($curly[$id], CURLOPT_URL, $url . ‘?’ . http_build_query($params));
curl_setopt($curly[$id], CURLOPT_CUSTOMREQUEST, self::DELETE);
break;
case self::POST:
curl_setopt($curly[$id], CURLOPT_URL, $url);
curl_setopt($curly[$id], CURLOPT_POST, true);
curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $params);
break;
case self::GET:
curl_setopt($curly[$id], CURLOPT_URL, $url . ‘?’ . http_build_query($params));
break;
}
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, true);
curl_setopt($curly[$id], CURLOPT_HTTPHEADER, $headers);
curl_multi_add_handle($mh, $curly[$id]);
}
$running = null;
do {
curl_multi_exec($mh, $running);
sleep(0.2);
} while($running > 0);
foreach($curly as $id => $c) {
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);
switch ($status) {
case self::HTTP_OK:
case self::HTTP_CREATED:
case self::HTTP_ACEPTED:
$result[$id] = curl_multi_getcontent($c);
break;
default:
if (!$this->_silentMode) {
$result[$id] = new Http_Multiple_Error($status, $type, $url, $params);
}
}
curl_multi_remove_handle($mh, $c);
}
curl_multi_close($mh);
return $result;
fonte: www.sastgroup.com





