/** * http 请求 * @param string $url * @param array $params * @param string $data * @return string */ private static function _http($url, $params = array(), $data = null) { $curl = curl_init(); if(empty($data)){ $body = ''; if(!empty($params)) { if (is_array($params)) { $body = http_build_query($params); } } }else{ $url = $url . (strpos($url, '?') ? '&' : '?') . (is_array($params) ? http_build_query($params) : $params); $body = $data; } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_TIMEOUT, 3); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, self::$_TIME_OUT); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $body); $urlArr = parse_url($url); $port = empty($urlArr['port']) ? 80 : $urlArr['port']; curl_setopt($curl, CURLOPT_PORT, $port); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //获取的信息以文件流的形式返回,不直接输出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); self::$_HTTP_CODE = curl_getinfo($curl, CURLINFO_HTTP_CODE); self::$_HTTP_INFO = curl_getinfo($curl); self::$_HTTP_ERROR_CODE = curl_errno($curl); self::$_HTTP_ERROR = curl_error($curl); curl_close($curl); self::$_HTTP_RESPONSE = $response; return $response; }