diginedbv / unirest-php
0.99.1
2014-02-12 15:04 UTC
Requires
- php: >=5.3.0
- ext-curl: *
- ext-json: *
Requires (Dev)
This package is not auto-updated.
Last update: 2022-02-01 12:31:13 UTC
README
**致社区**:目前Unirest-PHP只支持同步请求,我非常希望实现异步支持。如果您有任何反馈或想法,请在#23 问题上进行评论。
Unirest for PHP 
Unirest 是一套轻量级的 HTTP 库,适用于多种语言,非常适合大多数应用
- 执行
GET
、POST
、PUT
、PATCH
、DELETE
请求 - 支持表单参数、文件上传和自定义请求体
- 支持 gzip
- 原生支持基本认证
- 可自定义超时时间
- 可自定义每个请求的默认头信息(DRY)
- 自动将 JSON 响应解析为原生对象
由 thefosk 在 mashape.com 爱心打造
使用 Composer 安装
如果您使用 Composer 管理依赖,您可以添加 Unirest。
{ "require" : { "mashape/unirest-php" : "dev-master" }, "autoload": { "psr-0": {"Unirest": "lib/"} } }
从 GitHub 安装源代码
Unirest-PHP 需要 PHP v5.3+
。从 Github 下载 PHP 库,并在脚本中按如下方式引入
要安装源代码
$ git clone git@github.com:Mashape/unirest-php.git
并将其包含在您的脚本中
require_once '/path/to/unirest-php/lib/Unirest.php';
创建请求
您可能想知道如何使用 Unirest 使在 PHP 中创建请求变得更容易,让我们看看一个实际示例
$response = Unirest::post("http://httpbin.org/post", array( "Accept" => "application/json" ), array( "parameter" => 23, "foo" => "bar" ) ); $response->code; // HTTP Status code $response->headers; // Headers $response->body; // Parsed body $response->raw_body; // Unparsed body
文件上传
要在多部分表单表示中上传文件,请将 Unirest::file($path)
的返回值作为参数的值
$response = Unirest::post("http://httpbin.org/post", array( "Accept" => "application/json" ), array( "file" => Unirest::file("/tmp/file.txt") // Tells Unirest where the file is located ) );
自定义实体体
发送自定义体,如 JSON 对象,而不是字符串或表单样式参数,我们使用 json_encode 对体进行编码
$response = Unirest::post("http://httpbin.org/post", array( "Accept" => "application/json" ), json_encode( array( "parameter" => "value", "foo" => "bar" ) ) );
基本认证
可以通过提供 username
和 password
参数来进行基本认证请求的认证
$response = Unirest::get("http://httpbin.org/get", null, null, "username", "password");
请求
Unirest::get($url, $headers = array(), $parameters = NULL, $username = NULL, $password = NULL) Unirest::post($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL) Unirest::put($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL) Unirest::patch($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL) Unirest::delete($url, $headers = array(), $body = NULL, $username = NULL, $password = NULL)
url
- 要操作和请求信息的端点、地址或 uri。headers
- 请求头作为关联数组或对象body
- 请求体作为关联数组或对象username
- 基本认证用户名password
- 基本认证密码
响应
在收到响应后,Unirest 以对象的形式返回结果,这个对象应该始终包含与每个语言相关的相同键,以反映响应详情。
code
- HTTP响应状态码(例如200
)headers
- HTTP响应头部body
- 可用情况下解析的响应体,例如,JSON响应会被解析成对象/关联数组。raw_body
- 未解析的响应体
高级配置
您可以设置一些高级配置以调整Unirest-PHP
超时
您可以设置一个自定义的超时值(以秒
为单位)
Unirest::timeout(5); // 5s timeout
默认请求头部
您可以设置默认头部,这些头部将在每次请求时发送
Unirest::defaultHeader("Header1", "Value1"); Unirest::defaultHeader("Header2", "Value2");
您可以通过以下方式随时清除默认头部:
Unirest::clearDefaultHeaders();
SSL验证
当消费受SSL保护的端点时,您可以显式地启用或禁用SSL证书验证
Unirest::verifyPeer(false); // Disables SSL cert validation
默认值为true
。