PHP调用接口API封装的例子

吾爱主题 阅读:147 2021-08-31 15:35:00 评论:0

GET:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /**   * 通过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:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 /**   * 模拟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:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /**   * 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 2 3 4 5 $res =httpRequest( $url , 'post' , $data ); $json_array = json_decode( $res ,true); $data = $json_array [ 'data' ][ 'admin_user_list' ];   echo $data

以上这篇PHP调用接口API封装的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_38191191/article/details/82771869

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容