1、明確需求
實戰工作中經常會請求各種各樣的接口,例如
•微信網頁授權接口
• 高德周邊檢索接口
•發現:下圖是根據接口文檔開發后的代碼,發現代碼可讀性差(ps. 參數的作用不詳)
• 解決:通過http_build_query函數優化
<?php
###微信網頁授權接口
//1.聲明接口
$api = "https://open.weixin.qq.com/connect/oauth2/authorize?Appid=wx56e3e3d75414b3d0&redirect_uri=http://itcast.cn/login.php&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
//2.跳轉授權頁面
header("Location: $api");
echo '<hr />';
###高德地圖周邊檢索接口
//1.聲明接口
$api = "http://restapi.amap.com/v3/place/around?key=b94b446f4ecad8b4f0e6cf758bacf915&location=121.611809,31.034800&keywords=如家&types=&radius=50000&offset=20&page=1&extensions=all";
//2.請求接口
$data = file_get_contents($api);
//3.打印結果
var_dump($data);
2、語法說明
作用:將數組轉化為GET形式(輸出結果 -> 數組鍵1=數組值1&....數組鍵n=數組值n)
語法:http_build_query(數組)
<?php
//聲明接口數據
$apiData = [
'user' => 'z3',
'age' => 18,
'sex' => 'boy'
];
//將接口數據轉化為GET形式字符串
echo http_build_query($apiData);
3、分析步驟
這里我們主要通過php的http_build_query函數,來格式化GET請求的參數。我們以微信網頁授權接口為例,實現過程非常簡單,一共只需要2個步驟:
① 將接口參數放到數組中
② 通過php的http_build_query函數來格式化GET請求的參數
接下來,我們老師將帶領大家通過以上2個步驟來實現接口代碼優化....
4、推進代碼
<?php
###微信網頁授權接口
//1.聲明接口數據
$apiData = [
'appid' => 'wx56e3e3d75414b3d0', //公眾號的唯一標識
'redirect_uri' => 'http://itcast.cn/login.php', //授權后重定向的回調鏈接地址
'response_type' => 'code', //返回類型,請填寫code
'scope' => 'snsapi_base', //應用授權作用域:snsapi_base/snsapi_userinfo
'state' => 'STATE#wechat_redirect' //必填參數
];
//2.聲明接口
$api = "https://open.weixin.qq.com/connect/oauth2/authorize?".http_build_query($apiData);
//3.跳轉授權頁面
header("Location: $api");