curl 401未经授权的错误

时间:2016-05-03 13:27:03

标签: curl http-status-code-401 unauthorized

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

任何想法我的错误或我错过了什么?

enter image description here

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文件仅包含插入查询。

2 个答案:

答案 0 :(得分:12)

您的服务器上似乎已经在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

答案 1 :(得分:0)

我的Apache2网络服务器出现了这个错误消息,我花了一些时间进行诊断,所以我想记录一下研究同样问题的人有什么问题,然后降落到这里。

我错误地认为我的Apache运行正常并且我确实遇到了授权问题,因为这就是消息所暗示的。实际情况是我的Apache配置文件中存在语法错误。

如果本地curl为您提供此

enter image description here

(字符相同,给出或接受URL和端口号),你可能想检查一下你可以高兴地运行

service apache2 reload

在过多地调查授权之前!