zoukankan      html  css  js  c++  java
  • 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);
    }
    }

  • 相关阅读:
    高阶函数
    Vue-cli 3.0 搭建,以及vuex、axios、使用
    Git --- 基本操作以及Git 特殊命令,公司常用命令
    Git 剖析,以及Git相关操作
    git ssh key 生成
    React.Fragment 组件没有必要的多层嵌套,外层不需要过多嵌套
    spring cloud连载第三篇之Spring Cloud Netflix
    spring cloud连载第二篇之Spring Cloud Config
    AbstractQueuedSynchronizer
    Timer定时器
  • 原文地址:https://www.cnblogs.com/wzjdy/p/7256966.html
Copyright © 2011-2022 走看看