PHP CURL设置请求,发送http及https请求。

1. 自定义响应头

1.1发送json的header头

 $headers= array("Content-type: application/json;charset='utf-8'","Accept: application/json","Cache-Control: no-cache","Pragma: no-cache",);

1.2发送xml响应头;$header[] = "Content-type: text/xml";


function post($postdata, $url,$headers=""){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60); //设置超时
    if(0===strpos(strtolower($url),'https')){
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);// 对认证证书来源的检查
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);// 从证书中检查SSL加密算法是否存在
    }
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    if(!empty($headers)){
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    $response = curl_exec($ch);//CURLOPT_RETURNTRANSFER 不设置  curl_exec返回TRUE 设置  curl_exec返回json(此处) 失败都返回FALSE
    curl_close($ch);
    return $response;
}

注意:如果以post方式提交json数据, 则必须设置请求头(Content-type:application/Json);因为修改了请求头, 所以后台只能通过$post = file_get_contents("php://input");来获取请求数据。

猜你喜欢

转载自blog.csdn.net/pinming_sanlang1990/article/details/81095148