php - 我需要调用一个在 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");
推荐阅读
- php - Mysql SELECT WHERE $VAR IN $VAR,$VAR,$VAR
- java - 如何使用 getExternalStorageDirectory() 从内部存储加载多首歌曲
- c# - Xamarin 在蓝牙打印机中打印图像
- php - Tesseract - 检测图像的小字体并转换为文本
- wordpress - 如何在 Woocommerce 中的购物车按钮附近添加“显示详细信息”按钮
- java - 为什么 gradlew 在不同的机器上构建不同的 jar?
- c++ - 双向链表函数c++(作业)
- vba - VBA:筛选重复项时对象“_Worksheet”的运行时1004方法“范围”错误
- xamarin - 光标到达最后一个文本位置时改变粗细
- hybris - 在 Hybris 中插入图像