Requests 是一个简单的类,用于 HTTP 的请求,简化你与其他网页交互的难度。
- Requests::get('http://api.github.com/', array('Accept' => 'application/json'));
Requests 实现方式模仿于 Requests Python(link:http://python-requests.org/) 库,除了 PHP 5.2+ 之外,没有任何依赖项。
尽管 PHP 作为 Web 语言使用,但其发送 HTTP 请求的工具仍然严重缺乏。curl 工具至少可以说能用,你不能总是依赖它的存在。套接字只提供低级别访问,并要求您自己构建大部分 HTTP 响应和解析。
我们都有更好的事情要做。这就是 Requests 产生的原因。
- $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 允许您发送 HEAD, GET, POST, PUT, DELETE, 和 PATCH 类型的请求,可以使用简单数组添加请求头、表单数据、多部分文件和参数,并以同样的方式访问响应数据。请求使用 curl 和 fsockopen,这取决于您的系统有什么可用,但是抽象出所有讨厌的东西,提供一致的 API。
如果你用 Composer 管理依赖项,可以使用它添加请求。
- {
- "require": {
- "rmccue/requests": ">=1.0"
- }
- }
-
若要安装源代码,请执行以下操作:
- $ git clone git://github.com/rmccue/Requests.git
-
并将其包含在脚本中:
- require_once '/path/to/Requests/library/Requests.php';
-
您可能还想注册一个自动加载程序:
- Requests::register_autoloader();
-
或者,您可以获取一个 tarball 或 zipball:
- $ curl -L https://github.com/rmccue/Requests/tarball/master | tar xzv
- (or)
- $ wget https://github.com/rmccue/Requests/tarball/master -O - | tar xzv
-
如果您使用的是类加载器,例如 Symfony Class Loader 类别装载方式:
- $loader->registerPrefix('Requests', 'path/to/vendor/Requests/library');
更多使用文档:https://github.com/rmccue/Requests/blob/master/docs/README.md