Существуют ли альтернативы CURL на PHP, которые позволят клиенту подключиться к серверу архитектуры REST?
PUT, DELETE, загрузка файлов – вот что нужно для работы.
Вы можете написать свою собственную библиотеку. Это даже возможно сделать полностью на PHP, используя fsockopen и друзей. Например:
function httpget($host, $uri) { $msg = 'GET '.$uri." HTTP/1.1\r\n". 'Host: '.$host."\r\n". "Connection: close\r\n\r\n"; $fh = fsockopen($host, 80); fwrite($fh, $msg); $result = ''; while(!feof($fh)) { $result .= fgets($fh); } fclose($fh); return $result; }
Я рекомендую Zend_Http_Client (из Zend) или HTTP_Request2 (из PEAR). Оба они обеспечивают хорошо продуманную объектную модель для запросов HTTP.
По моему личному опыту, я нашел версию Zend более зрелой (в основном, имея дело с краевыми случаями).