Requests 基于 PHP 简单方便的 HTTP 请求类 - 文章教程

Requests 基于 PHP 简单方便的 HTTP 请求类

发布于 2020-12-10 字数 3050 浏览 1610 评论 0

Requests 是一个简单的类,用于 HTTP 的请求,简化你与其他网页交互的难度。

Requests::get('http://api.github.com/', array('Accept' => 'application/json'));

Requests 实现方式模仿于 Requests Python 库,除了 PHP 5.2+ 之外,没有任何依赖项。

Requests 基于 PHP 简单方便的 HTTP 请求类

尽管 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。

特征

  • 支持国际域名和网址
  • 浏览器式的 ssl 验证
  • 基本 / 摘要认证
  • 自动解压
  • 设置连接超时

安装

使用 Composer 安装

如果你用 Composer 管理依赖项,可以使用它添加请求。

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

从 GitHub 安装源代码

若要安装源代码,请执行以下操作:

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

并将其包含在脚本中:

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

您可能还想注册一个自动加载程序:

Requests::register_autoloader();

从 zip/tarball 安装源代码

或者,您可以获取一个 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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

清欢

文章 1 评论 0

贱贱哒

文章 3 评论 0

悸初

文章 2 评论 0

西瓜杏

文章 0 评论 0

各自安好

文章 0 评论 0