comodojo / httprequest
HTTP request library
Installs: 30 838
Dependents: 3
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 2
Open Issues: 0
pkg:composer/comodojo/httprequest
Requires
- php: >=5.3.0
- comodojo/exceptions: ^1.0
- league/url: ^3.0
Requires (Dev)
- phpunit/phpunit: ^4.0|^5.0
- scrutinizer/ocular: ^1.0
Suggests
- ext-curl: Make requests using curl instead of stream
README
HTTP request library
This is the development branch, please do not use it in production
Main features:
- BASIC, NTLM, DIGEST and SPNEGO auth (requires php curl library) authentication support
- proxy support
- allowed http methods: GET, POST, PUT, DELETE
- CURL or stream working mode
- request customization (useragent, http version, content type, ...)
Installation
Install composer, then:
composer require comodojo/httprequest
Basic usage
Library usage is trivial: first create an instance of Httprequest specifing remote host address, then use get or send method to start request. It's important to wrap code in a try/catch block to handle exceptions (if any).
Constructor accepts two parameters: remote host address (required) and a boolean value (optional) that, if false, will force lib to use streams instead of curl.
- 
Using get: try { // create an instance of Httprequest $http = new \Comodojo\Httprequest\Httprequest("www.example.com"); // or: // $http = new \Comodojo\Httprequest\Httprequest(); // $http->setHost("www.example.com"); // get remote data $result = $http->get(); } catch (\Comodojo\Exception\HttpException $he) { /* handle http specific exception */ } catch (\Exception $e) { /* handle generic exception */ } 
- 
Using send: $data = array('foo'=>'bar', 'baz'=>'boom'); try { // create an instance of Httprequest $http = new \Comodojo\Httprequest\Httprequest("www.example.com"); // get remote data $result = $http->setHttpMethod("POST")->send($data); } catch (\Comodojo\Exception\HttpException $he) { /* handle http specific exception */ } catch (\Exception $e) { /* handle generic exception */ } 
Class setters (chainable methods)
- 
Set destination port (default 80) $http->setPort(8080); 
- 
Set timeout (in secs) $http->setTimeout(10); 
- 
Set a custom user agent (default to 'Comodojo-Httprequest') $http->setUserAgent("My-Custom-User-Agent"); 
- 
Set HTTP version (1.0 or 1.1) $http->setHttpVersion("1.1"); 
- 
Set content type (default to 'application/x-www-form-urlencoded' and used only with sendmethod)$http->setContentType("multipart/form-data"); 
- 
Set additional/custom headers: $http->setHeader("My-Header","foo"); 
- 
Set authentication: // NTLM $http->setAuth("NTLM", "myusername", "mypassword"); // BASIC $http->setAuth("BASIC", "myusername", "mypassword"); 
- 
Set proxy: // No authentication $http->setProxy(proxy.example.org); // Authentication $http->setProxy(proxy.example.org, "myusername", "mypassword"); 
- 
Ignore errors (stream only): Force the stream to ignore errors and to return http code and content from the server instead of throwing an exception. // Set the stream to ignore errors $http->setIgnoreErrors(true); 
Class getters
- 
Get response headers: // After a request... $headers = $http->getReceivedHeaders(); 
- 
Get HTTP received status code: // After a request... $code = $http->getHttpStatusCode(); 
Multiple requests
The reset method helps resetting options and data channel; for example:
try { // create an instance of Httprequest $http = new \Comodojo\Httprequest\Httprequest(); // first request $first_data = $http->setHost("www.example.com")->get(); // channel reset $http->reset(); // second request $second_data = $http->setHost("www.example2.com")->setHttpMethod("POST")->send(array("my"=>"data")); } catch (\Comodojo\Exception\HttpException $he) { /* handle http specific exception */ } catch (\Exception $e) { /* handle generic exception */ }
Documentation
Contributing
Contributions are welcome and will be fully credited. Please see CONTRIBUTING for details.
License
comodojo/httprequest is released under the MIT License (MIT). Please see License File for more information.