Rumah  >  Artikel  >  pembangunan bahagian belakang  >  CURL如何获取HTTPS协议的状态码

CURL如何获取HTTPS协议的状态码

WBOY
WBOYasal
2016-06-23 13:39:22992semak imbas

$curl = curl_init();$url='https://';curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl,CURLOPT_NOBODY,true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); echo curl_getinfo($curl,CURLINFO_HTTP_CODE); curl_close($curl); 


我用这种方法打印出http的状态码没问题,但是换成https协议一直输出0. 请问https应该怎么获取


回复讨论(解决方案)

https ?求?要加上
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在

<?php/** curl 获取 https 请求* @param String $url        请求的url* @param Array  $data       要?送的??* @param Array  $header     请求时发送的header* @param int    $timeout    超时时间,默认30s*/function curl_https($url, $data=array(), $header=array(), $timeout=30){    $ch = curl_init();    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);    curl_setopt($ch, CURLOPT_POST, true);    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);    $response = curl_exec($ch);	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    if($error=curl_error($ch)){        die($error);    }    curl_close($ch);    return array($code,$response);}// 调用$url = 'https://example.com/message.php';$data = array('name'=>'fdipzone');$header = array();list($code, $response) = curl_https($url, $data, $header, 5);echo $code;echo $response;?>

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn