【问题标题】:I need to call an API which is working in windows but not in linux, I am getting 401 error我需要调用一个在 Windows 中工作但不在 linux 中工作的 API,我收到 401 错误
【发布时间】:2019-12-17 08:03:59
【问题描述】:

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

我得到的错误是:

状态码:401 结果:HTTP/1.1 401 Unauthorized

我的代码:

    <?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中显示:状态码:401 结果:HTTP/1.1 401 Unauthorized
  • 你为你的服务打开端口了吗?

标签: php linux apache rest soap


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-01-25
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2021-01-26
    • 2019-08-11
    • 1970-01-01
    • 2020-01-26
    相关资源
    最近更新 更多