Существуют ли какие-либо другие опции для rest-клиентов, кроме CURL?

#php #rest

#php #rest

Вопрос:

Существуют ли альтернативы CURL в PHP, которые позволят клиенту подключаться к серверу архитектуры REST?

УСТАНОВКА, УДАЛЕНИЕ, загрузка файла — вот некоторые из вещей, которые должны работать.

Комментарии:

1. cURL не зависит от PHP, и libcurl можно добавить в ваш проект curl.haxx.se/libcurl

2. это не специфично, но его легко установить и использовать. Подобное решение является хорошим ответом.

3. Могу я спросить, почему вы не хотите использовать cURL?

4. Мне нужно что-то простое в установке и универсальное, чтобы клиентам не приходилось полагаться на единственную библиотеку для использования сервера.

Ответ №1:

Вы можете написать свою собственную библиотеку. Это даже возможно сделать полностью на PHP, используя fsockopen и friends. Например:

 function httpget($host, $uri) {
  $msg = 'GET '.$uri." HTTP/1.1rn".
         'Host: '.$host."rn".
         "Connection: closernrn";
  $fh = fsockopen($host, 80);
  fwrite($fh, $msg);
  $result = '';
  while(!feof($fh)) {
    $result .= fgets($fh);
  }
  fclose($fh);
  return $result;
}
  

Ответ №2:

Я рекомендую Zend_Http_Client (из Zend) или HTTP_Request2 (из PEAR). Они оба предоставляют хорошо разработанную объектную модель для выполнения HTTP-запросов.

По моему личному опыту, я обнаружил, что версия Zend немного более зрелая (в основном для работы с граничными случаями).