curl 401 未经授权的错误

curl 401 Unauthorized error

如图所示,当我尝试 运行 https://www.example.com/Push_Order.php?orderId=1562 它给了我 401 Unathorized 错误.但是当我在浏览器中 运行 这个 Url 它 运行 很好。

知道我的错误在哪里或我遗漏了什么吗?

PHP 卷曲代码

<?php

$ch = curl_init("https://www.example.com/Push_Order.php?orderId=1562");

curl_setopt($ch);

$response = curl_exec($ch);

curl_close($ch);
?>

并且此 Push_Order.php 文件仅包含插入查询。

看起来您在服务器上的 Apache 中启用了授权,但您目前没有意识到,因为您的浏览器正在为您缓存用户名和密码。

您必须像这样设置 CURLOPT_USERPWD 选项:

<?php

$ch = curl_init("https://www.example.com/Push_Order.php?orderId=1562");

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

$response = curl_exec($ch);

curl_close($ch);
?>

(空的 curl_setopt($ch) 很奇怪,充其量也就是空操作。)

在命令行中它应该像这样工作(包括 URL 中的用户名和密码):

curl https://myusername:mypassword@www.example.com/Push_Order.php?orderId=1562

我的 Apache2 Web 服务器确实收到了这条错误消息,我花了一些时间来诊断,所以我想记录一下任何研究与我遇到的相同问题并登陆这里的人出了什么问题。

我错误地认为我的 Apache 运行 正常,但我确实遇到了授权问题,正如消息所暗示的那样。事实上,我的 Apache 配置文件中存在语法错误。

如果本地 curl 给你这个

(字符对字符相同,给或取一个 URL 和端口号,)你可能想检查你可以愉快地 运行

service apache2 reload

在过度调查授权之前!