yiisoft/yii2-httpclient 使用

yiisoft/yii2-httpclient是Yii2的HTTP客戶端擴展,專門用於調取遠端接口json

一:安裝yiisoft/yii2-httpclientapi

composer require yiisoft/yii2-httpclient

二:使用數組

1:get請求yii2

get請求我總結了如下一共可使用以下三種方式app

(1)使用get方法,傳遞的參數直接拼接在接口地址上composer

//接口地址: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方法的第二個參數上yii

//接口地址: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傳參post

//接口地址: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請求ui

post請求我總結了兩種請求方式url

(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);
相關文章
相關標籤/搜索