yiisoft/yii2-httpclient 是 Yii2 的 HTTP 客户端扩展,专门用于调取远端接口
一:安装 yiisoft/yii2-httpclient
composer require yiisoft/yii2-httpclient
二:使用
1:get 请求
get 请求我总结了以下一共可以使用如下三种方式
(1)使用 get 方法,传递的参数直接拼接在接口地址上
// 接口地址:https://api.wj0511.com/v1/literary/detail?token=XXXXXX&id=351
$data = 'token=XXXXXX&id=351';//get 传参
$client = new Client(['baseUrl' => 'https://api.wj0511.com' // 接口的入口地址]);
$response = $client
->get('/v1/literary/detail?' . $data)
->send();
if (!$response->isOk) {echo '接口请求错误';}
// 接口返回信息
var_dump($response->data);
(2): 使用 get 方法,传递的参数放在 get 方法的第二个参数上
// 接口地址:https://api.wj0511.com/v1/literary/detail?token=XXXXXX&id=351
//get 参数
$data = [
'token' => 'XXXXXX',
'id' => '351',
];
$client = new Client(['baseUrl' => 'https://api.wj0511.com' // 接口的入口地址]);
$response = $client
->get('/v1/literary/detail', $data)
->send();
if (!$response->isOk) {echo '接口请求错误';}
// 接口返回信息
var_dump($response->data);
(3): 使用 setUrl 实现 get 传参
// 接口地址:https://api.wj0511.com/v1/literary/detail?token=XXXXXX&id=351
// 接口地址加 get 传参
$url = 'https://api.wj0511.com/v1/literary/detail?token=XXXXXX&id=351';
$client = new Client();
$response = $client->createRequest()
->setMethod('GET') // 设置为 get 请求
->setUrl($url) // 接口地址
->send();
if (!$response->isOk) {echo '接口请求错误';}
// 接口返回信息
var_dump($response->data);
2:post 请求
post 请求我总结了两种请求方式
(1) 使用 post 方法
//post 传参
$data = [
'user_name' => 'test',
'password' => 'test',
];
$data = json_encode($data);
$client = new Client(['baseUrl' => 'https://api.wj0511.com']);
$response = $client
->post(
// 设置接口地址
'/v1/login/login',
// 设置 post 传参
$data,
// 设置 header 信息
['Content-Type'=>'application/json']
)
->send();
if (!$response->isOk) {echo '接口请求错误';}
// 接口返回信息
var_dump($response->data);
(2) 使用 setUrl 实现 post 传参
// 接口地址
$url = 'https://api.wj0511.com/v1/login/login';
//post 传参
$data = [
'user_name' => 'test',
'password' => 'test',
];
$client = new Client();
$response = $client->createRequest()
->setMethod('POST') // 请求方式
->setUrl($url) // 请求地址
->setData($data) // 数据传数组
->setHeaders(['Content-Type'=>'application/json']) //header
->setFormat(Client::FORMAT_JSON) // 提交的数据的格式
->send();
if (!$response->isOk) {echo '接口请求错误';}
// 接口返回信息
var_dump($response->data);