GithubHelp home page GithubHelp logo

hedii / http-punch Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 11 KB

Http punch is a php library for punching (visiting) an http endpoint.

License: MIT License

PHP 100.00%
php http-client cron webhook monitoring

http-punch's Introduction

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.

http-punch's People

Contributors

hedii avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.