微信使用的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 }

 

posted @ 2018-04-18 11:02  菜的掉渣  阅读(385)  评论(0编辑  收藏  举报