php通用网络请求支持post、get、cookie、header
php通用网络请求支持post、get、cookie、header
/** * @param $url 接口地址 * @param $http_method 请求方式 * @param $data 请求数据 * @param $header 请求头(一维非关联数组) * @param $cookie 请cookie * @return 发送https的post请求 */ function http_curl($url, $http_method = 'GET', $data = '', $header = array(), $cookie = '') { $headers = array( 'Accept: application/json', ); $headers = array_merge($headers, $header); if ($cookie) { $headers[] = "Cookie: $cookie"; } $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //post提交方式 if ($http_method == 'POST' && $data) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } $res = curl_exec($ch); //返回结果 if ($res) { curl_close($ch); return $res; } else { $error = curl_errno($ch); curl_close($ch); return $error; } }
带Header的POST请求:
/** * 发送数据 * @param String $url 请求的地址 * @param Array $header 自定义的header数据 * @param Array $content POST的数据 * @return String */ function tocurl($url, $header, $content){ $ch = curl_init(); if(substr($url,0,5)=='https'){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在 } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置请求头信息 curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $content); $response = curl_exec($ch); if($error=curl_error($ch)){ die($error); } curl_close($ch); return $response; }