我想知道CURLOPT_USERPWD实际上对请求的网址,标头或数据做了什么。它是Authorization: Basic <base64 of user:pass>
的INSTEAD还是与它一起工作?
是否修改了这个网址?:
username:password@someurl.com
我看到了一些像这样的代码,所以我想知道,因为看起来我在NodeJS等效请求中请求它的URL只是一个Authorization标头(我有理论服务器坏了,忽略了Auth头)并在网址中使用用户名:密码:
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$encodedAuth = base64_encode(self::$pfAdapterUser.":".self::$pfAdapterPasswd);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authentication : Basic ".$encodedAuth));
curl_setopt($ch, CURLOPT_USERPWD, self::$pfAdapterUser.":".self::$pfAdapterPasswd);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
由于
答案 0 :(得分:36)
是否修改了这个网址?:
username:password@someurl.com
不,网址仍然相同。您可以查看
curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
此
$encodedAuth = base64_encode(self::$pfAdapterUser.":".self::$pfAdapterPasswd);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic ".$encodedAuth));
这个
curl_setopt($ch, CURLOPT_USERPWD, self::$pfAdapterUser.":".self::$pfAdapterPasswd);
正在做同样的事情,所以不需要一起使用它们(尽管它不会破坏),使用一个它会正常工作。