tp6 或者 tp8框架 在框架的app/common.php 文件里加一些方法就可以
app\common.php
在这个文件里加 以下代码 就可以实现基于 curl的请求方法 (记得要开启 php的curl扩展)
查看方法 cmd里输入 php -m
if (!function_exists('get')) {/*** 发送get请求* @param string $url 请求地址* @param array $params 请求参数* @param array $header 请求头* @return response|bool*/function get($url, $params = [], $header = []){$curl = curl_init();try{curl_setopt_array($curl, array(CURLOPT_URL => $url . '?' . http_build_query($params),CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => 'GET',CURLOPT_HTTPHEADER => $header,));$response = curl_exec($curl);curl_close($curl);if (empty($response)){return false;}$response1 = json_decode($response, true);if (empty($response1)) {return $response;}return $response1;} catch(\Exception $e){return false;}return false;}
}if (!function_exists('post')) {/*** 发送post请求* @param string $url 请求地址* @param array $params 请求参数* @param array $header 请求头* @return response|bool*/function post($url, $post, $params = array(), $header = []){$curl = curl_init();try{curl_setopt_array($curl, array(CURLOPT_URL => $url . '?' . http_build_query($params),CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => 'POST',CURLOPT_POSTFIELDS => $post,// CURLOPT_HTTPHEADER => array(// 'Content-Type: application/json'// ),));if (is_string($post)) {curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));}if (!empty($header)) {curl_setopt($curl, CURLOPT_HTTPHEADER, $header);}$response = curl_exec($curl);curl_close($curl);if (empty($response)){return false;}$response = json_decode($response, true);return $response;} catch(\Exception $e){return false;}return false;}
}
在这里增加了两个方法 分别是 get 和 post 可以根据自己的需求 设置相应属性
使用的时候 在控制器里
// get 请求
get('http://www.xxx.com', ['key1' => 1, 'key2' => 2]);
// post 请求
post('http://www.xxx.com', ['key1' => 1, 'key2' => 2]);
就OK了