zoukankan      html  css  js  c++  java
  • 微信使用的curl方法

      1 /**
      2  * GET 请求
      3  *
      4  * @param string $url
      5  */
      6 private function http_get($url)
      7 {
      8     $oCurl = curl_init();
      9     if (stripos($url, "https://") !== FALSE) {
     10         curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
     11         curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
     12         curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); // CURL_SSLVERSION_TLSv1
     13     }
     14     curl_setopt($oCurl, CURLOPT_URL, $url);
     15     curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
     16     $sContent = curl_exec($oCurl);
     17     $aStatus = curl_getinfo($oCurl);
     18     curl_close($oCurl);
     19     if (intval($aStatus["http_code"]) == 200) {
     20         return $sContent;
     21     } else {
     22         return false;
     23     }
     24 }
     25 
     26 /**
     27  * POST 请求
     28  *
     29  * @param string $url
     30  * @param array $param
     31  * @param boolean $post_file
     32  *            是否文件上传
     33  * @return string content
     34  */
     35 private function http_post($url, $param, $post_file = false)
     36 {
     37     $oCurl = curl_init();
     38     if (stripos($url, "https://") !== FALSE) {
     39         curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
     40         curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
     41         curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); // CURL_SSLVERSION_TLSv1
     42     }
     43     if (PHP_VERSION_ID >= 50500 && class_exists('CURLFile')) {
     44         $is_curlFile = true;
     45     } else {
     46         $is_curlFile = false;
     47         if (defined('CURLOPT_SAFE_UPLOAD')) {
     48             curl_setopt($oCurl, CURLOPT_SAFE_UPLOAD, false);
     49         }
     50     }
     51     if (is_string($param)) {
     52         $strPOST = $param;
     53     } elseif ($post_file) {
     54         if ($is_curlFile) {
     55             foreach ($param as $key => $val) {
     56                 if (substr($val, 0, 1) == '@') {
     57                     $param[$key] = new CURLFile(realpath(substr($val, 1)));
     58                 }
     59             }
     60         }
     61         $strPOST = $param;
     62     } else {
     63         $aPOST = array();
     64         foreach ($param as $key => $val) {
     65             $aPOST[] = $key . "=" . urlencode($val);
     66         }
     67         $strPOST = join("&", $aPOST);
     68     }
     69     curl_setopt($oCurl, CURLOPT_URL, $url);
     70     curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
     71     curl_setopt($oCurl, CURLOPT_POST, true);
     72     curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST);
     73     $sContent = curl_exec($oCurl);
     74     $aStatus = curl_getinfo($oCurl);
     75     curl_close($oCurl);
     76     if (intval($aStatus["http_code"]) == 200) {
     77         return $sContent;
     78     } else {
     79         return false;
     80     }
     81 }
     82  
     83 
     84 ############################################################################
     85 
     86 
     87 public function send_post( $url, $post_data ) {
     88 $options = array(
     89     'http' => array(
     90     'method'  => 'POST',
     91     'header'  => 'Content-type:application/json',
     92     //header 需要设置为 JSON
     93     'content' => $post_data,
     94     'timeout' => 60
     95     //超时时间
     96     )
     97 );
     98 
     99 $context = stream_context_create( $options );
    100 $result = file_get_contents( $url, false, $context );
    101 
    102 return $result;
    103 }
  • 相关阅读:
    详解mysql int类型的长度值问题
    linux的作业控制(job control)
    Linux环境变量的设置和查看方法
    gearman入门初步
    VIM 乱码终极解决
    android系统通过图片绝对路径获取URI的三种方法
    Buck电路调试
    第二次画板
    1 第一次画PCB总结
    一起学习模拟电路之1
  • 原文地址:https://www.cnblogs.com/saonian/p/8872828.html
Copyright © 2011-2022 走看看