后端请求第三方API并处理数据
公共封装
1 /**
2 * 可以发送https,http方式模拟浏览器请求数据
3 * $url:完整请求连接
4 */
5 private function getApi($url)
6 {
7 /*关闭SSL验证*/
8 $stream_opts = [
9 "ssl" => [
10 "verify_peer" => false,
11 "verify_peer_name" => false,
12 ]
13 ];
14 /*模拟浏览器*/
15 ini_set('user_agent', 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19');
16
17 $resStr = file_get_contents($url, false, stream_context_create($stream_opts));
18
19 $resJson = json_decode($resStr); //转json
20
21 return $resJson;
22 }
经纬度转地址
/**
* 经纬度转地址
* lat:纬度
* lon:经度
**/
public function toAdd($lat = '', $lon = '')
{
$url = 'https://nominatim.openstreetmap.org/reverse';
if (empty($lat) || empty($lon)) {
$this->error("返回失败", "经纬度不能为空"); //这里的返回方式是fastadmin封装的方法
}
$params = [
"format" => "json", //类型
"lat" => $lat, //纬度
"lon" => $lon, //经度
];
$paramstring = http_build_query($params); /*生成 URL-encode 之后的请求字符串*/
$toUrl = $url . '?' . $paramstring;
$res = $this->getApi($toUrl); //请求开始
$this->success("返回成功", $res); //这里的返回方式是fastadmin封装的方法
}