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);