cURL适用于CLI,但不适用于PHP?
这是我正在使用的代码:
curl -k https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg 这很好用(“-k”标志是工作或超时所必需的) 然后我在PHP中使用此代码: $ch = curl_init("https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg"); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); 它超时 – 我尝试了很多变化,但结果总是假的. 当我执行phpinfo()时,这是PHP cURL信息:
任何想法将不胜感激. UPDATE 以下是curl_getinfo($ch)的信息: array ( 'url' => 'https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg','content_type' => NULL,'http_code' => 0,'header_size' => 0,'request_size' => 0,'filetime' => -1,'ssl_verify_result' => 1,'redirect_count' => 0,'total_time' => 59.27538100000000298450686386786401271820068359375,'namelookup_time' => 0.00975999999999999957867036215475309290923178195953369140625,'connect_time' => 0.05170500000000000095923269327613525092601776123046875,'pretransfer_time' => 0,'size_upload' => 0,'size_download' => 0,'speed_download' => 0,'speed_upload' => 0,'download_content_length' => -1,'upload_content_length' => -1,'starttransfer_time' => 0,'redirect_time' => 0,'certinfo' => array ( ),'primary_ip' => '65.207.240.29','primary_port' => 443,'local_ip' => '172.24.32.132','local_port' => 54461,'redirect_url' => '',) 更新2 来自curl_error的回复: Unknown SSL protocol error in connection to www.ashleydirect.com:443 更新3 – 解决方案 我想清楚地提出我想出的解决方案,感谢@Valery Viktorovsky指出他们只接受TLS 1.0. 解决方案,然后是添加这个: // Set to TLS 1.0 (CURL_SSLVERSION_TLSv1_0) curl_setopt($ch,CURLOPT_SSLVERSION,4); More information here 解决方法
你的PHP代码很好.执行curl_getinfo($ch)和curl_error($ch)aftercurl_exec以查看服务器返回的响应代码.
更新:我测试了ashleydirect.com SSL证书,它只支持TLS 1.0.因此,请确保您的php版本支持TLSv1.0. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |