因为专注,所以专业
2005 - 2020

PHP简单封装get-post调用接口API

时间:2020-05-20 19:04:00    作者:八叔模板堂

GET:


/**
?*? 通过URL获取页面信息
?* @param $url? 地址
?* @return mixed? 返回页面信息
?*/
function get_url($url)
{
? ? $ch = curl_init();
? ? curl_setopt($ch, CURLOPT_URL,$url);? //设置访问的url地址
? ? curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
? ? curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
? ? curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容
? ? $result =? curl_exec($ch);
? ? curl_close ($ch);
? ? return $result;
}



POST:



/**
?* 模拟POST提交
?* @param string $url 地址
?* @param string $data 提交的数据
?* @return string 返回结果
?*/
function post_url($url, $data)?
{
? ? $curl = curl_init(); // 启动一个CURL会话
? ? curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
? ? curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
? ? curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
? ? curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器
? ? //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
? ? //curl_setopt($curl, CURLOPT_AUTOREFERER, 1);? ? // 自动设置Referer
? ? curl_setopt($curl, CURLOPT_POST, 1);? ? ? ? ? ? ?// 发送一个常规的Post请求
? ? curl_setopt($curl, CURLOPT_POSTFIELDS, $data);? ?// Post提交的数据包x
? ? curl_setopt($curl, CURLOPT_TIMEOUT, 30);? ? ? ? ?// 设置超时限制 防止死循环
? ? curl_setopt($curl, CURLOPT_HEADER, 0);? ? ? ? ? ?// 显示返回的Header区域内容
? ? curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);? ?// 获取的信息以文件流的形式返回
?
? ? $tmpInfo = curl_exec($curl); // 执行操作
? ? if(curl_errno($curl))?
{
? ? ? ?echo 'Errno'.curl_error($curl);//捕抓异常
? ? }
? ? curl_close($curl); // 关闭CURL会话
? ? return $tmpInfo; // 返回数据
}


GET&&POST:


/**
?* CURL请求
?* @param $url 请求url地址
?* @param $method 请求方法 get post
?* @param null $postfields post数据数组
?* @param array $headers 请求header信息
?* @param bool|false $debug? 调试开启 默认false
?* @return mixed
?*/
function httpRequest($url, $method, $postfields = null, $headers = array(), $debug = false) {
? ? $method = strtoupper($method);
? ? $ci = curl_init();
? ? /* Curl settings */
? ? curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
? ? curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
? ? curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */
? ? curl_setopt($ci, CURLOPT_TIMEOUT, 7); /* 设置cURL允许执行的最长秒数 */
? ? curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
? ? switch ($method) {
? ? ? ? case "POST":
? ? ? ? ? ? curl_setopt($ci, CURLOPT_POST, true);
? ? ? ? ? ? if (!empty($postfields)) {
? ? ? ? ? ? ? ? $tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;
? ? ? ? ? ? ? ? curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */
? ? ? ? ? ? break;
? ? }
? ? $ssl = preg_match('/^https:\/\//i',$url) ? TRUE : FALSE;
? ? curl_setopt($ci, CURLOPT_URL, $url);
? ? if($ssl){
? ? ? ? curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
? ? ? ? curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在
? ? }
? ? //curl_setopt($ci, CURLOPT_HEADER, true); /*启用时会将头文件的信息作为数据流输出*/
? ? curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);
? ? curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/
? ? curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
? ? curl_setopt($ci, CURLINFO_HEADER_OUT, true);
? ? /*curl_setopt($ci, CURLOPT_COOKIE, $Cookiestr); * *COOKIE带过去** */
? ? $response = curl_exec($ci);
? ? $requestinfo = curl_getinfo($ci);
? ? $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
? ? if ($debug) {
? ? ? ? echo "=====post data======\r\n";
? ? ? ? var_dump($postfields);
? ? ? ? echo "=====info===== \r\n";
? ? ? ? print_r($requestinfo);
? ? ? ? echo "=====response=====\r\n";
? ? ? ? print_r($response);
? ? }
? ? curl_close($ci);
? ? return $response;
? ? //return array($http_code, $response,$requestinfo);
}


实例:


  1. $res =httpRequest($url,'post',$data);
  2. $json_array = json_decode($res,true);
  3. $data=$json_array['data']['admin_user_list'];
  4. echo $data

赞(0
免费拨打  111-1111-1111
免费拨打  111-1111-1111免费拨打 111-1111-1111
微信二维码
手机二维码
返回顶部
返回顶部返回顶部