curl php 相同的代码在 ubuntu 上运行良好,但在 WAMP Windows 8 上则不然


curl php same code works fine on ubuntu but not on wamp windows 8

我不熟悉 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限制。或者也许别的东西=)

相关文章: