hedii / http-punch
A php library to punch an http endpoint
Requires
- php: >=7.1
- ext-curl: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- laravel/lumen-framework: 5.6.*
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-10-18 20:17:59 UTC
README
http-punch
Http punch is a php library for punching (visiting) an http url.
It can be used to check whether an host is online or offline, to check a server response time, to hit a cron job url, to hit a webhook url, etc...
Table of contents
Installation
Install via composer
composer require hedii/http-punch
Usage
Instantiation
Create a http punch instance:
<?php // require composer autoloader require '/path/to/vendor/autoload.php'; // instantiate $puncher = new Hedii\HttpPunch\HttpPunch();
Alternatively, you can pass a request timeout in second (default 30), and a connection timeout in second (default 10):
// instantiate with request and connection timeout as parameters $puncher = new Hedii\HttpPunch\HttpPunch(20, 5);
Perform an http punch
Call the punch(string $url, string $method = 'get', array $body = []): array
method to perform an http punch.
// instantiate $puncher = new Hedii\HttpPunch\HttpPunch(); // perform a get request $result = $puncher->punch('http://example.com'); // perform a post request $result = $puncher->punch('http://example.com', 'post'); // perform a post request with a given body as an array $result = $puncher->punch('http://example.com', 'post', ['foo' => 'bar']); // set the outgoing ip address (it uses CURLOPT_INTERFACE behind the scenes) and perform a get request $result = $puncher->setIp('192.160.0.101')->punch('http://example.com'); // set an array of request headers and perform a get request $result = $puncher->setHeaders(['foo' => 'bar'])->punch('http://example.com');
The result of this method is an array with with the http punch report information. The value of success
indicates if the website is has successfully responded to the request:
array(5) {
'url' => "http://example.com"
'success' => true
'status_code' => 200
'message' => "OK"
'transfer_time' => 0.765217
}
Notice that the url field contains the effective url (in case of redirect response, this is the final url, the status code will be 200 and the message "OK").
The result array
Testing
composer test
License
hedii/http-punch is released under the MIT Licence. See the bundled LICENSE file for details.