I wasn't able to find elegant solution for a long time, didn't like cURL implementations, came up with my own. It supports HTTP authentication, redirects, PUT, etc. because it relies on pecl http module.
Implementation is nice and simple, easy to extend.
- https://github.com/shurikk/rest-client-php
More information can be found here:
- http://pecl.php.net/package/pecl_http
- http://www.php.net/manual/en/http.request.options.php