• curl的封装类


    <?php

    class Curl {

    private $ch;
    private $url;

    public function __construct(){
      $this -> ch = curl_init();
    }

    /**
    * 设置一个请求链接
    * @param String $url 请求的地址
    */
    public function setUrl($url){
      $this -> url = $url;
    }

    /**
    * 设置请求属性
    * @param boolean $isHttps 是否采用https方式请求
    * @param string $requestType 请求方式
    */
    private function setopt($isHttps, $requestType, $data, $useCert = false){
      curl_setopt($this -> ch, CURLOPT_URL, $this -> url);
      curl_setopt($this -> ch, CURLOPT_HEADER, 0);
      curl_setopt($this -> ch, CURLOPT_RETURNTRANSFER, 1);
      if ($isHttps) {
        curl_setopt($this -> ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($this -> ch, CURLOPT_SSL_VERIFYHOST, 2);
      }

      if($useCert == true){
        //设置证书
        //使用证书:cert 与 key 分别属于两个.pem文件
        curl_setopt($this->ch,CURLOPT_SSLCERTTYPE,'PEM');
        curl_setopt($this->ch,CURLOPT_SSLCERT, SSLCERT_PATH);
        curl_setopt($this->ch,CURLOPT_SSLKEYTYPE,'PEM');
        curl_setopt($this->ch,CURLOPT_SSLKEY, SSLKEY_PATH);
      }

      if (!empty($data)) {
        curl_setopt($this->ch, CURLOPT_POSTFIELDS, $data);
      }

      if ($requestType == 'POST') {
        curl_setopt($this->ch, CURLOPT_POST, true);
      }
    }

    /**
    * 执行一个请求
    * @return resource 返回执行结果
    */
    public function execute($isHttps = false, $requestType = 'GET', $data = null, $useCert = false){
      $this->setopt($isHttps, $requestType, $data, $useCert);
      $content = curl_exec($this->ch);
      $this->close();
      if (!empty($content)) {
        return $content;
      } else {
        return curl_error($this->ch);
      }
    }

    /**
    * 关闭一个请求资源句柄
    */
    private function close(){
      curl_close($this -> ch);
    }
    }

  • 相关阅读:
    Translation Rule 和命中法则
    Cisco Extension Mobility配置步骤详解
    tclsh命令, cisco 快速测试工具
    136、多继承的优缺点,作为一个开发者怎么看待多继承
    135、 虚函数的内存结构,那菱形继承的虚函数内存结构呢
    134、隐式转换,如何消除隐式转换?
    133、说一下你理解的 ifdef endif代表着什么?
    132、 静态成员与普通成员的区别是什么?
    131、全局变量和static变量的区别
    130、定义和声明的区别
  • 原文地址:https://www.cnblogs.com/wzjdy/p/7256966.html
Copyright © 2020-2023  润新知