php封装curl,模拟POST和GET请求HTTPS请求

全屏阅读
  • 基本信息
<?php

/**
 * @title 封装代理请求
 * @author victor
 **/
class ApiRequest {

  /**
   * curl提交数据
   * @param String $url 请求的地址
   * @param Array $header 自定义的header数据
   * @param Array $content POST的数据
   * @return String
   */
   public function toCurl($url, $header, $content)
   {
       $ch = curl_init();
       if(substr($url,0,5)=='https'){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 跳过证书检查
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
        $response = curl_exec($ch);
        if($error=curl_error($ch)){
            die($error);
        }
        curl_close($ch);
        return $response;
   }

  /**
   * @desc GET请求
   **/
  public function curl_get($url, array $params = array(), $timeout = 5)
  {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
      $file_contents = curl_exec($ch);
      curl_close($ch);
      return $file_contents;
  }

  /**
   * @desc POST请求
   **/
  public function curl_post($url, array $params = array(), $timeout)
  {
      $ch = curl_init();//初始化
      curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
      curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
      curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
      curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
      $data = curl_exec($ch);//运行curl
      curl_close($ch);
      return ($data);
  }

  /**
   * @desc https 请求
   **/
  public function curl_get_https($url)
  {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_HEADER, false);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11');
      $res = curl_exec($ch);
      $rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
      curl_close($ch);
      return $res;
  }
}
?>

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!