rmccue / requests
一个用PHP编写的,面向人类的HTTP库。
Requires
- php: >=5.6
- ext-json: *
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- php-parallel-lint/php-console-highlighter: ^0.5.0
- php-parallel-lint/php-parallel-lint: ^1.3.1
- phpcompatibility/php-compatibility: ^9.0
- requests/test-server: dev-main
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.6
- wp-coding-standards/wpcs: ^2.0
- yoast/phpunit-polyfills: ^1.0.0
Suggests
- ext-curl: For improved performance
- ext-openssl: For secure transport support
- ext-zlib: For improved performance when decompressing encoded streams
- art4/requests-psr18-adapter: For using Requests as a PSR-18 HTTP Client
- dev-develop
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- 2.0.2
- v2.0.1
- v2.0.0
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.1
- v1.6.0
- dev-feature/ghactions-update-ruby-for-ghpages
- dev-dependabot/github_actions/peter-evans/create-pull-request-7
- dev-feature/sessiontest-minor-tweak
- dev-test/are-proxy-tests-running
- dev-feature/tests-remove-redundant-script
- dev-feature/ghactions-add-extra-port-check
- dev-feature/mark-sensitive-parameters
- dev-stable
- dev-319/better-test-attempt-take-two
- dev-feature/add-tests-for-edge-case-url-handling
- dev-feature/220-add-param-to-curl-after-send-hook
- dev-TEMP/debug-curl-close
- dev-feature/110-curl_multi-select
- dev-release/1.8.1
- dev-stream-input
- dev-one-dot-six
This package is auto-updated.
Last update: 2024-09-09 16:43:58 UTC
README
Requests是一个用PHP编写的HTTP库,面向人类。它大致基于出色的Requests Python库的API。Requests采用ISC许可(类似于新BSD许可),并且没有依赖项,除了PHP 5.6.20+。
尽管PHP被用作网络语言,但其发送HTTP请求的工具却严重不足。cURL至少有一个有趣的API,而且你并不总是能依赖于它的可用性。套接字只提供低级访问,并且需要你自己构建大部分HTTP响应解析。
我们都有更重要的事情要做。这就是为什么Requests应运而生。
$headers = array('Accept' => 'application/json'); $options = array('auth' => array('user', 'pass')); $request = WpOrg\Requests\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允许你发送HEAD、GET、POST、PUT、DELETE和PATCH HTTP请求。你可以添加头部、表单数据、多部分文件和基本数组中的参数,并以相同的方式访问响应数据。Requests根据你的系统可用性使用cURL和fsockopen,但将所有糟糕的东西抽象出来,提供了一个一致的API。
特性
- 国际域名和URL
- 浏览器风格的SSL验证
- 基本/摘要身份验证
- 自动解压缩
- 连接超时
安装
使用Composer安装
如果你使用Composer来管理依赖项,你可以使用它添加Requests。
composer require rmccue/requests
或者
{ "require": { "rmccue/requests": "^2.0" } }
从GitHub安装源代码
要安装源代码
$ git clone git://github.com/WordPress/Requests.git
接下来,在您的脚本中包含自动加载器
require_once '/path/to/Requests/src/Autoload.php';
你可能还想注册自动加载器
WpOrg\Requests\Autoload::register();
从zip/tarball安装源代码
$ curl -L https://github.com/WordPress/Requests/tarball/stable | tar xzv (or) $ wget https://github.com/WordPress/Requests/tarball/stable -O - | tar xzv
使用类加载器
如果你使用类加载器(例如,Symfony Class Loader)进行PSR-4风格的类加载
$loader = new Psr4ClassLoader(); $loader->addPrefix('WpOrg\\Requests\\', 'path/to/vendor/Requests/src'); $loader->register();
文档
最好的起点是基于文本的文档,它将指导你使用Requests。
之后,请参阅\WpOrg\Requests\Requests::request()
的文档,其中所有参数都有详细的说明。
Requests使用100% PHPDoc进行文档记录。如果你发现任何问题,请创建一个新问题!
测试覆盖率
Requests致力于通过大量测试实现库的100%代码覆盖率。我们还没有完全达到这个目标,但我们已经非常接近了。
Requests 和 PSR-7/PSR-18
PSR-7 定义了表示HTTP消息的通用接口。 PSR-18 定义了发送HTTP请求和接收HTTP响应的通用接口。
PSR-7 和 PSR-18 都是 Requests 构想之后的产物。目前,我们还没有计划在 Requests 库中添加原生 PSR-7/PSR-18 实现。
然而,令人惊叹的 Artur Weigandt 创建了一个 软件包,它允许您将 Requests 作为PSR-7兼容的PSR-18 HTTP客户端使用。如果您对PSR-7/PSR-18兼容版本的Requests感兴趣,我们强烈建议您查看 此软件包。
贡献
我们非常欢迎对这个库的贡献。请阅读贡献指南以开始。