$val) { if($is_urlcode){ $encode_key = urlencode($key); }else{ $encode_key = $key; } if ($encode_key != $key) { unset($query[$key]); } if($is_urlcode){ $query[$encode_key] = urlencode($val); }else{ $query[$encode_key] = $val; } } } // 设置CURL选项,指定请求的URL curl_setopt(self::$_ch, CURLOPT_URL, $url); // 设置CURL选项,启用返回传输 curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, 1); // 设置CURL选项,不返回响应头 curl_setopt(self::$_ch, CURLOPT_HEADER, 0); // 设置CURL选项,启用POST请求 curl_setopt(self::$_ch, CURLOPT_POST, true ); // 设置CURL选项,指定POST请求的数据 curl_setopt(self::$_ch, CURLOPT_POSTFIELDS, $query); // 设置CURL选项,不验证SSL证书 curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 设置CURL选项,设置SSL版本 curl_setopt(self::$_ch, CURLOPT_SSLVERSION, 1); // 执行CURL请求并获取响应 $ret = self::_execute(); // 关闭CURL会话 self::_close(); return $ret; } /** * 发送PUT请求 * 构建并发送一个HTTP PUT请求,并将响应返回。 * @param string $url 请求的URL地址 * @param array $query 请求参数数组 * @return string 请求的响应内容 */ private static function _put($url, $query = array()) { // 设置CURL选项,指定请求方法为PUT curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'PUT'); return self::_httpPost($url, $query); } /** * 发送DELETE请求 * 构建并发送一个HTTP DELETE请求,并将响应返回。 * @param string $url 请求的URL地址 * @param array $query 请求参数数组 * @return string 请求的响应内容 */ private static function _delete($url, $query = array()) { // 设置CURL选项,指定请求方法为DELETE curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); return self::_httpPost($url, $query); } /** * 发送HEAD请求 * 构建并发送一个HTTP HEAD请求,并将响应返回。 * @param string $url 请求的URL地址 * @param array $query 请求参数数组 * @return string 请求的响应内容 */ private static function _head($url, $query = array()) { // 设置CURL选项,指定请求方法为HEAD curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'HEAD'); return self::_httpPost($url, $query); } private static function _execute() { $response = curl_exec(self::$_ch); $errno = curl_errno(self::$_ch); if ($errno > 0) { throw new \Exception(curl_error(self::$_ch), $errno); } return $response; } } // 执行CURL请求 // 执行CURL会话