HTTPRequest simplifies cURL and fsockopen requests around Object-Oriented concepts. It serves as a superb foundation for PHP-based API integrations and allows a range of customization of headers, query parameters and automatically degrades to fsockopen when cURL is unavailable.
Request www.google.com:
$http = new HTTPRequest('www.google.com');
$http -> execute();
echo $http -> getResponseText();
$http -> close();
Echoes:
<!doctype html><html itemscope itemtype="http://schema.org/WebPage"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta name="description" content="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for."><meta name="robots" content="noodp"><meta itemprop="image" content="/images/google_favicon_128.png"><title>Google</title>
Nice!
HTTPRequest is also great for making calls to 3rd-party APIs. Here's a Geocoding request to Google Maps:
$http = new HTTPRequest('maps.googleapis.com', '/maps/api/geocode/json');
$params = array(
'address' => 'The Moon',
'sensor' => false
);
$http -> setQueryParams($params);
$http -> execute();
echo $http -> getResponseText();
$http -> close();
And we get back some pretty JSON:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Moon",
"short_name" : "Moon",
"types" : [ "route" ]
},
...
In this case, the constructor took a second parameter (the uri) in addition to first property (which was the host name). The constructor can also take the port number, a boolean directing whether or not to use cURL if possible and the timeout in seconds.
public function __construct($host = null, $uri = '/', $port = 80, $useCurl = null, $timeout = 10)
Many of the HTTPRequest class' methods return the instance itself, enabling chaining (if you please).
$http = new HTTPRequest('maps.googleapis.com', '/maps/api/geocode/json');
$params = array('address'=>'The Moon','sensor'=>false);
echo $http -> setQueryParams($params) -> execute() -> getResponseText();
$http -> close();
HTTPRequest also supports HTTPS/SSL for both cURL and fsockopen. For example, you can make calls to the Trello API in a snap:
$http = new HTTPRequest('api.trello.com', '/1/boards/4d5ea62fd76aa1136000000c', 443);
$params = array(
'key' => '[YOUR_DEVELOPER_KEY]'
);
$http -> setQueryParams($params);
$http -> execute();
echo $http -> getResponseText();
$http -> close();
We get back some info about the Trello development board:
{"id":"4d5ea62fd76aa1136000000c","name":"Trello Development","desc":"Trello board used by the Trello team to track work on Trello. How meta!\n\nThe development of the Trello API is being tracked at https://trello.com/api\n\nThe development of Trello Mobile applications is being tracked at https://trello.com/mobile","closed":false,"idOrganization":"4e1452614e4b8698470000e0","url":"https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c","prefs":{"voting":"public","permissionLevel":"public","invitations":"members","comments":"public"}}