Requests

Requests for PHP is a humble HTTP request library. It simplifies how you interact with other sites and takes away all your worries.

Github星跟蹤圖

Requests for PHP

Build Status
codecov.io

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+.

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.

We all have better things to do. That's why Requests was born.

$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.

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.

composer require rmccue/requests

or

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

Install source from GitHub

To install the source code:

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

And include it in your scripts:

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

You'll probably also want to register an autoloader:

Requests::register_autoloader();

Install source from zip/tarball

Alternatively, you can fetch a tarball or zipball:

$ 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:

$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.

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

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

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.

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

$ cd tests
$ phpunit

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

$ 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

主要指標

概覽
名稱與所有者WordPress/Requests
主編程語言PHP
編程語言PHP (語言數: 3)
平台
許可證Other
所有者活动
創建於2012-02-07 15:37:48
推送於2025-08-25 16:50:58
最后一次提交
發布數23
最新版本名稱v2.0.15 (發布於 2025-01-21 11:16:51)
第一版名稱v1.5 (發布於 )
用户参与
星數3.6k
關注者數123
派生數504
提交數1.7k
已啟用問題?
問題數307
打開的問題數92
拉請求數480
打開的拉請求數37
關閉的拉請求數123
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?