我使用curl在php中调用Web服务。但是在服务器端位置更改了我在IIS7中的站点并使其安全。
所以现在我在调用webservice时遇到了问题。发生以下错误:
HTTP错误401.2 - 未经授权
由于身份验证标头无效,您无权查看此页面。
我不知道如何传递用户凭据。请说明问题是什么以及如何处理。
答案 0 :(得分:0)
添加这些选项。希望它有所帮助=)
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password);
[Reference] :CURLOPT_HTTPAUTH
要使用的HTTP身份验证方法。选项是: CURLAUTH_BASIC,CURLAUTH_DIGEST,CURLAUTH_GSSNEGOTIATE,CURLAUTH_NTLM, CURLAUTH_ANY和CURLAUTH_ANYSAFE。
按位| (或)运算符可用于组合多个 方法。如果这样做,cURL将轮询服务器以查看哪些方法 它支持并选择最好的一个。
CURLAUTH_ANY是CURLAUTH_BASIC |的别名CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM。
CURLAUTH_ANYSAFE是CURLAUTH_DIGEST |的别名 CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM。