主题
Http 客户端
TIP
CatchAdmin 提供了一个简洁的 Http 客户端以帮助用户进行 Curl 请求操作。
先来看一个简单的例子, 请求 CatchAdmin
的用户列表
php
$response = Http::token('token')->get('http://127.0.0.1:9090/users');
return $response->json();
通过简单的接口便可以返回请求数据.
头部信息
你可以使用 headers
方法来设置头部信息,接受一个 array 参数
php
Http::headers([
'token' => 'token'
])
Body
如果你希望设置 Body 信息。请使用 body
方法,它接受一个 string
php
Http::body(‘body’)
超时时间
你可以通过 timeout
方法,设置一个 number
类型的参数
Http::timeout(‘body’)
token 令牌
如果你想要为你的请求添加 Authorization Token
令牌请求头,你可以使用token
方法
php
Http::token('token');
json
json
方法选项用来轻松将JSON
数据当成主体上传, 如果没有设置Content-Type
头信息的时候会设置成 application/json
。他接受一个 array 参数
php
Http::json([
])
异步请求
使用 async
$promise = Http::asynac()->get()
这样就是生成一个异步请求,返回 Promise 对象,所以你不可以直接使用 Response 的响应, 继续使用代码如下
php
$promise->then(
function (ResponseInterface $res) {
echo $res->getStatusCode() . "\n";
},
function (RequestException $e) {
echo $e->getMessage() . "\n";
echo $e->getRequest()->getMethod();
}
);
Form 请求
使用 form
方法进行请求, 以请求 CatchAdmin 登陆为例,代码实现
php
$response = Http::form([
'email' => 'admin@gmail.com',
'password' => 'admin'
])->post('http://127.0.0.1:9090/login');
dd($response['data']['token']);
你可以直接把响应当作数组来使用,因为它实现了 ArrayAccess 接口,具体可以查看源代码实现。
Query 请求
如果你在使用 Get 时,可以使用该方法提供 Query 参数
php
$response = Http::token('token')
->query([
'limit' => 20
])
->get('http://127.0.0.1:9090/users');
return $response->json();
上传附件
如果你需要单独上传文件附件,可以使用 attach 方法,它接受三个参数,name,文件资源路径,文件名称,看一下代码
php
$response = Http::token('token')
->attach('image', fopen(root_path() . DIRECTORY_SEPARATOR . 'logo.png', 'r+'), 'logo.png')
->post('http://127.0.0.1:9090/upload/image');
return $response;
Response 响应
响应提供以下几个方法,可以使用
ok
successful
failed
headers
响应头信息then
异步响应需要使用status
响应状态码body
响应 Bodyjson
Api 数据格式化