https://github.com/Garik-/http-request
Очень часто в коде можно встретить такие строки:
$result = file_get_contents("http://geocode-maps.yandex.ru/1.x/?geocode=".urlencode("Москва"));
$handle = fopen("http://www.example.com/", "rb");
$result = fgets($handle);
- Не важно человеку, что директива allow_url_fopen может быть отключена на сервере.
- Не важно, что на сервере установлена библиотека cURL, которая без проблем скачает 100 МБ файл.
- Не важно, какой ответ вернет сервер, 200, 301, может 404, может 502?
- Не важно, то что сеть не идеальная среда и ответ может придти частично или его вовсе не будет продолжительное время. Скрипт попросту подвиснет в ожидании на неопределенное время или вернет не корректный результат.
try {
$http = HttpRequest::get("http://geocode-maps.yandex.ru/1.x/?format=json",array("geocode"=>$city))->acceptJson();
$json = $http->ok() ? json_decode($http->body()) : null;
} catch (HttpRequestException $e) {
exit($e->getMessage());
}
Теперь это действительно не важно.
Библиотека Http Request основана на одноименной библиотеке Kevin Sawicki, которая должна быть хорошо известна Android разработчикам, ведь её использует сам GitHub в своем приложении.
P.S: в скором времени, статья пополниться примерами, очень хотелось поделиться разработкой с сообществом.
Автор: Gariks