【问题标题】:How to set curl to allow HTTPS? [duplicate]如何设置 curl 以允许 HTTPS? [复制]
【发布时间】:2019-10-02 18:34:56
【问题描述】:

我有这些代码可以使用 PHP 语言查看 pdf 文件。

但我的 PDF 文件位于另一个远程服务器中,该服务器具有 HTTPS

下面的代码是调用pdf文件。

它适用于 HTTP。但是对于 HTTPS,无法加载文档。

PHP 文件

$cookie = 'cookies.txt';
$timeout = 30; 
$url = "https://www.test.com/viewpdf/view.pdf";

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_PROXY, true);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout );
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);


header('Content-type: application/pdf');
$result = curl_exec($ch);
curl_close($ch);
echo $result; 

我在这里缺少什么?

如果有人可以帮助我,不胜感激。

谢谢。

【问题讨论】:

  • 谢谢。我会试试你的建议。

标签: php ssl curl self-signed


【解决方案1】:

如果您在实时服务器上工作,那么您的代码应该可以正常工作。但是如果你在 localhost 或 dev 服务器上工作,那么你需要将CURLOPT_SSL_VERIFYPEER 设置为关闭,如下代码:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 2020-01-11
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多