Самодостаточная библиотека Requests призвана восполнить недостаток в человеческих инструментах PHP для отправки HTTP-запросов. Авторы правильно посчитали, что у всех нас полно других интересных вещей, нежели разборки с занятным API cURL, все опции и параметры которого просто невозможно держать в голове. Да и не всегда cURL доступен. Cокеты обеспечивают лишь низкоуровневый доступ и требуют от программиста парсить все ответы HTTP самостоятельно.
На основе таких соображений и родилась Requests.
$headers = array('Accept' => 'application/json'); $options = array('auth' => array('user', 'pass')); $request = Requests::get('https://api.github.com/gists', $headers, $options); var_dump($request->status_code); // int(200) var_dump($request->headers['content-type']); // string(31) "application/json; charset=utf-8" var_dump($request->body); // string(26891) "[...]"
Requests позволяет отправлять HEAD, GET, POST, PUT, DELETE и PATCH HTTP-запросы. Можно добавлять заголовки, данные форм, файлы и параметры в простых массивах и получать доступ к ответным данным тем же путем. Requests использует cURL и fsockopen в зависимости от того, что из них доступно в системе, при этом абстрагируясь от всех неприятных вещей, которые могут быть с ними связаны и обеспечивая последовательный API.