hedii/http-punch

A php library to punch an http endpoint

2.0.1 2018-02-15 15:24 UTC

This package is auto-updated.

Last update: 2024-03-18 18:55:49 UTC


README

Build Status

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

Field Type Description
url string The effective url
success boolean Whether the http punch is successful or not
status_code null|integer The http response status code or null in case of a client error
message string The http response message or the client error message
transfer_time float The transfer time in seconds

Testing

composer test

License

hedii/http-punch is released under the MIT Licence. See the bundled LICENSE file for details.