将 curl 与 http 身份验证一起使用时如何修复需要身份验证的错误 401
How to fix Authentication required error 401 when using curl with http authentication
我正在使用本地 php 脚本,该脚本 运行 在远程服务器上的脚本上卷曲。远程脚本受 http 身份验证保护。
当我 运行 我的本地脚本时,我收到以下错误:
"This server could not verify that you are authorized to access the URL "/script.php”。您可能提供了错误的凭据(例如,错误的密码),或者您的浏览器不了解如何提供所需的凭据。
如果您被允许请求该文件,请检查您的用户名和密码,然后重试。
如果您认为这是服务器错误,请联系站长。
错误 401
我已经从这里尝试了投票最高的答案:
我已经试过了:https://thisinterestsme.com/php-curl-http-auth/
-> 我总是从上面收到同样的错误。
我定义了 $username
和 $password
。我使用的代码:
$url = 'https://' . $page . '/script.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));
print_r($additionalHeaders);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($ch);
print_r($return);
curl_close($ch);
打印 $additionalHeaders
变量后,我在错误发生前得到以下附加信息:
"HTTP/1.1 401 Unauthorized Date: Sat, 10 Aug 2019 22:05:26 GMT Server: Apache WWW-Authenticate: Digest realm="Protected", nonce="Xg78fMqPBQA=8d674639fbd19b9ec67b085aa43e90be7a4c57cc", algorithm=MD5, qop="auth" Vary: accept-language,accept-charset 严格传输安全: max-age =16000000 升级:h2 连接:升级接受范围:字节传输编码:分块内容类型:text/html;字符集=utf-8 内容语言:en
正在打印 $return
没有显示任何内容 ...
您的网站根本没有使用 HTTP 基本身份验证,它使用的是 Digest access authentication、google CURLAUTH_DIGEST
、
curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_DIGEST);
完整的工作解决方案($url
$username
和 $password
除外)如下所示:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($ch);
curl_close($ch);
我正在使用本地 php 脚本,该脚本 运行 在远程服务器上的脚本上卷曲。远程脚本受 http 身份验证保护。
当我 运行 我的本地脚本时,我收到以下错误:
"This server could not verify that you are authorized to access the URL "/script.php”。您可能提供了错误的凭据(例如,错误的密码),或者您的浏览器不了解如何提供所需的凭据。
如果您被允许请求该文件,请检查您的用户名和密码,然后重试。
如果您认为这是服务器错误,请联系站长。
错误 401
我已经从这里尝试了投票最高的答案: 我已经试过了:https://thisinterestsme.com/php-curl-http-auth/
-> 我总是从上面收到同样的错误。
我定义了 $username
和 $password
。我使用的代码:
$url = 'https://' . $page . '/script.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));
print_r($additionalHeaders);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($ch);
print_r($return);
curl_close($ch);
打印 $additionalHeaders
变量后,我在错误发生前得到以下附加信息:
"HTTP/1.1 401 Unauthorized Date: Sat, 10 Aug 2019 22:05:26 GMT Server: Apache WWW-Authenticate: Digest realm="Protected", nonce="Xg78fMqPBQA=8d674639fbd19b9ec67b085aa43e90be7a4c57cc", algorithm=MD5, qop="auth" Vary: accept-language,accept-charset 严格传输安全: max-age =16000000 升级:h2 连接:升级接受范围:字节传输编码:分块内容类型:text/html;字符集=utf-8 内容语言:en
正在打印 $return
没有显示任何内容 ...
您的网站根本没有使用 HTTP 基本身份验证,它使用的是 Digest access authentication、google CURLAUTH_DIGEST
、
curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_DIGEST);
完整的工作解决方案($url
$username
和 $password
除外)如下所示:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($ch);
curl_close($ch);