【发布时间】:2017-10-31 18:27:33
【问题描述】:
所以我使用 PHP 和 Curl 试图下载 https weburl(来自https://www.g2crowd.com)但它不起作用,这是我到目前为止的代码一个简单的 curl 和另一个更高级的 curl ,两者都无法正常工作。 :(
// connect via SSL, but don't check cert
$ch=curl_init('https://www.g2crowd.com');
curl_setopt ($ch, CURLOPT_CAINFO, "cacert.pem");
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
$content = curl_exec($ch);
echo $content; // show target page
$ckfile = tempnam ("/tmp", 'cookiename');
$url='https://www.g2crowd.com/';
//$url='https://www.google.com';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_COOKIESESSION, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $ckfile );
curl_setopt( $ch, CURLOPT_COOKIEFILE, $ckfile );
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
'Host: www.g2crowd.com',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'Accept-Encoding: gzip, deflate'
];
curl_setopt($ch, CURLOPT_CAINFO, 'C:\Users\ivan\Downloads\cacert.pem');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_REFERER, "https://www.g2crowd.com/users/c190d528-ab02-4cb5-8467-9362ceaec290");
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec ($ch);
if(curl_error($ch))
{
echo curl_error($ch);
}
else {
echo 'eureka!';
}
curl_close ($ch);
我试图捕捉 curl 错误,所以这是错误:
1407742E:SSL 例程:SSL23_GET_SERVER_HELLO:tlsv1 警报协议版本
请帮帮我!
谢谢!!
【问题讨论】:
-
$i设置在哪里(和什么)? (见第 18 行。) -
嘿 cHa 好点!那是我尝试循环遍历各种 ssl 协议时的调试遗留问题,但即便如此,当我设置或删除该参数时 - 它仍然返回错误。