2017 © Pedro Peláez
 

library requests

A HTTP library written in PHP, for human beings.

image

rmccue/requests

A HTTP library written in PHP, for human beings.

  • Wednesday, December 13, 2017
  • by rmccue
  • Repository
  • 145 Watchers
  • 2945 Stars
  • 2,578,473 Installations
  • PHP
  • 214 Dependents
  • 10 Suggesters
  • 410 Forks
  • 85 Open issues
  • 8 Versions
  • 9 % Grown

The README.md

Requests for PHP

Build Status codecov.io, (*1)

Requests is a HTTP library written in PHP, for human beings. It is roughly based on the API from the excellent Requests Python library. Requests is ISC Licensed (similar to the new BSD license) and has no dependencies, except for PHP 5.2+., (*2)

Despite PHP's use as a language for the web, its tools for sending HTTP requests are severely lacking. cURL has an interesting API, to say the least, and you can't always rely on it being available. Sockets provide only low level access, and require you to build most of the HTTP response parsing yourself., (*3)

We all have better things to do. That's why Requests was born., (*4)

$headers = array('Accept' => 'application/json');
$options = array('auth' => array('user', 'pass'));
$request = Requests::get('https://api.github.com/gists', $headers, $options);

var_dump($request->status_code);
// int(200)

var_dump($request->headers['content-type']);
// string(31) "application/json; charset=utf-8"

var_dump($request->body);
// string(26891) "[...]"

Requests allows you to send HEAD, GET, POST, PUT, DELETE, and PATCH HTTP requests. You can add headers, form data, multipart files, and parameters with simple arrays, and access the response data in the same way. Requests uses cURL and fsockopen, depending on what your system has available, but abstracts all the nasty stuff out of your way, providing a consistent API., (*5)

Features

  • International Domains and URLs
  • Browser-style SSL Verification
  • Basic/Digest Authentication
  • Automatic Decompression
  • Connection Timeouts

Installation

Install with Composer

If you're using Composer to manage dependencies, you can add Requests with it., (*6)

composer require rmccue/requests

or, (*7)

{
    "require": {
        "rmccue/requests": ">=1.0"
    }
}

Install source from GitHub

To install the source code:, (*8)

$ git clone git://github.com/rmccue/Requests.git

And include it in your scripts:, (*9)

require_once '/path/to/Requests/library/Requests.php';

You'll probably also want to register an autoloader:, (*10)

Requests::register_autoloader();

Install source from zip/tarball

Alternatively, you can fetch a tarball or zipball:, (*11)

$ curl -L https://github.com/rmccue/Requests/tarball/master | tar xzv
(or)
$ wget https://github.com/rmccue/Requests/tarball/master -O - | tar xzv

Using a Class Loader

If you're using a class loader (e.g., Symfony Class Loader) for PSR-0-style class loading:, (*12)

$loader->registerPrefix('Requests', 'path/to/vendor/Requests/library');

Documentation

The best place to start is our prose-based documentation, which will guide you through using Requests., (*13)

After that, take a look at the documentation for Requests::request(), where all the parameters are fully documented., (*14)

Requests is 100% documented with PHPDoc. If you find any problems with it, create a new issue!, (*15)

Testing

Requests strives to have 100% code-coverage of the library with an extensive set of tests. We're not quite there yet, but we're getting close., (*16)

To run the test suite, first check that you have the PHP JSON extension enabled. Then simply:, (*17)

$ cd tests
$ phpunit

If you'd like to run a single set of tests, specify just the name:, (*18)

$ phpunit Transport/cURL

Contribute

  1. Check for open issues or open a new issue for a feature request or a bug
  2. Fork the repository on Github to start making your changes to the master branch (or branch off of it)
  3. Write a test which shows that the bug was fixed or that the feature works as expected
  4. Send a pull request and bug me until I merge it

The Versions

13/12 2017

dev-master

9999999-dev http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen

20/10 2017

dev-misctypo

dev-misctypo http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen

09/06 2017

dev-add-contributing-doc

dev-add-contributing-doc http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen

13/10 2016

v1.7.0

1.7.0.0 http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen

31/01 2016

dev-stream-input

dev-stream-input http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen

18/05 2014

dev-one-dot-six

dev-one-dot-six http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen

18/05 2014

v1.6.1

1.6.1.0 http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen

06/10 2013

v1.6.0

1.6.0.0 http://github.com/rmccue/Requests

A HTTP library written in PHP, for human beings.

  Sources   Download

ISC

The Requires

  • php >=5.2

 

The Development Requires

curl http ipv6 sockets iri idna fsockopen