I wrote a PHP HTTP client called Guzzle. Guzzle is an HTTP client and framework for building REST webservice clients. You can find more information about Guzzle on its website, or go straight to the source on github: https://github.com/guzzle/guzzle
Guzzle provides goodies that most HTTP clients provide (a simpler interface, all of the HTTP methods, and viewing the request/response), but also provides other advanced features:
- streaming entity bodies
- exponential backoff
- a built-in caching forward proxy
- cookies
- logging
- managed persistent connections
- parallel requests
- OAuth
- a plugin architecture that allows you to implement arbitrary authentication schemes
- Autogenerating a Client API from a JSON service description file
The only drawback: It requires PHP 5.3.3