yii2的httpclients是一个模拟http协议的一个组件,封装好了http的请求方法,专门用于调取远端接口,是一个友好,成熟的扩展。
安装
composer require yiisoft/yii2-httpclient
使用
get请求
// 使用一
$client = new Client([
'baseUrl' => 'https://api.wj0511.com' //接口的入口地址
]);
$response = $client
->get('/v1/literary/detail', [
'token' => 'XXXXXX',
'id' => '351',
])
->send();
if (!$response->isOk) {
echo '接口请求错误';
}
//接口返回信息
var_dump($response->data);
// 使用二
$client = new Client();
$response = $client->createRequest()
->setMethod('GET') //设置为get请求
->setUrl('https://api.wj0511.com/v1/literary/detail?token=XXXXXX&id=351') //接口地址
->send();
if (!$response->isOk) {
echo '接口请求错误';
}
//接口返回信息
var_dump($response->data);
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);
// 使用二
$client = new Client();
$response = $client->createRequest()
->setMethod('POST') // 请求方式
->setUrl( 'https://api.wj0511.com/v1/login/login') // 请求地址
->setData([
'user_name' => 'test',
'password' => 'test',
]) //数据传数据
->setHeaders(['Content-Type'=>'application/json']) //header
->setFormat(Client::FORMAT_JSON) //提交的数据的格式
->send();
if (!$response->isOk) {
echo '接口请求错误';
}
//接口返回信息
var_dump($response->data);
文档
详细使用请参照官方文档:官方文档