转载

yiisoft/yii2-httpclient 使用

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);
原文  https://segmentfault.com/a/1190000019907511
正文到此结束
Loading...