我需要调用一个在 Windows 中工作但在 Linux 中不起作用的 API,我收到 401 错误



以下代码在我的Windows机器上工作,但相同的代码在我的服务器上不起作用。我的服务器平台是Linux。

我得到的错误是:

状态代码:401

结果:HTTP/1.1 401 未授权

我的代码:

<?php
try {
$username = 'mXXXX';
$password = 'SyXXX';
$URL = 'http://svt-srv-nav.synovergetech.com:7047/DynamicsNAV90/WS/SMCSPL/Page/Customer';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
curl_close($ch);
//var_dump($result);
$obj = simplexml_load_string($result);
echo "<pre>";
print_r($obj);
echo "</pre>";
}catch (Exception $e) {
echo $e->getMessage();
}

在 Linux服务器中启用授权尝试添加正确的用户名和密码

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword");