yiisoftyii2httpclient-使用

33次阅读

共计 1953 个字符,预计需要花费 5 分钟才能阅读完成。

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

正文完
 0