我不熟悉 Php,我在启用 Windows curl_php上运行此代码时遇到问题,执行代码时没有错误,但我在 ubuntu 上有一个空白屏幕我得到了一个结果,我也禁用了防火墙但仍然一无所获
$username = "myusername";
$password = "mypasword";
$host = "https://myurl";
$process = curl_init($host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($process, CURLINFO_HEADER_OUT, false);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'GET');
echo curl_exec($process);
解决方案是禁用 ssl 验证(是的,它使用 https =) )
法典:
<?php
$username = "myusername";
$password = "mypassword";
$url = "https://myurl";
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($process, CURLOPT_RETURNTRANSFER, true);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($process, CURLINFO_HEADER_OUT, true);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($process, CURLOPT_SSL_VERIFYHOST, false);
echo curl_exec($process);
curl_close($process);
尝试调试。将以下代码添加到 php 文件的开头,紧接在 <?php
之后(在新行上):
error_reporting(E_ALL|E_NOTICE);
ini_set('display_errors', 'On');
并刷新您的页面。如果存在错误,您可能会看到错误;
如果没有,请在最后一次呼叫后添加以下内容curl_setopt
:
echo 'errno: ', curl_errno($process), ', error: ', curl_error($process), "'n";
您可能会看到一个错误。
之后,我们可以尝试帮助您解决问题;
也许有一个重定向到另一个页面,并且您的Windows php安装使用open_basedir限制。或者也许别的东西=)