$ch = curl_init();curl_setopt($ch,CURLOPT_URL,"https://www.Google.fr");curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$result = curl_exec($ch);if (curl_errno($ch)) { echo 'Error:' . curl_error($ch);}curl_close ($ch);
它返回:
Failed to connect to www.Google.fr port 443: Connection refused
这是正常的,我是一个代理,它需要我的windows凭据(NTLM)允许互联网流量.
在MS Powershell中,这可行:
$request = New-Object System.Net.WebCLIEnt$request.UseDefaultCredentials = $true$request.Proxy.Credentials = $request.Credentials$request.Downloadfile($url,$path)
使用“DefaultCredentials”(= windows Credentials)并将它们发送到代理允许我访问Web.但我现在不知道它是如何工作的.
如果我使用firefox导航,firefox总是会添加一个Proxy-Authorization标头,其值为:Negociate blablablablababalazdlad …
我想将.NET useDefaultCredentials解决方案转换为cURL,我试过:
$ch = curl_init();curl_setopt($ch,1);curl_setopt($ch,CURLOPT_httpAUTH,CURLAUTH_NTLM );curl_setopt($ch,CURLOPT_PROXYAUTH,CURLAUTH_NTLM );$result = curl_exec($ch);if (curl_errno($ch)) { echo 'Error:' . curl_error($ch);}curl_close ($ch);
没有成功
解决方法 如果它是在启用“sspI”支持的情况下构建的,则curl可以执行此 *** 作.您可以在提示符上运行curl -V来检查.或者PHP -i或者调用PHPinfo();来自PHP本身.有了sspI
您将CURLOPT_PROXYUSERPWD选项设置为空白用户/密码(除了其他选项)只是为了触发身份验证,但它将为您获取默认凭据:
curl_setopt($ch,CURLOPT_PROXYUSERPWD,":" );
完整的代码看起来如下所示.另请注意,CURLOPT_httpAUTH用于对远程服务器进行身份验证,而不是代理.而且我认为你不太可能想要谷歌的http身份验证……
$ch = curl_init();curl_setopt($ch,1);curl_setopt($ch,CURLOPT_PROXY,"http://proxyhost.example.com:8080/");curl_setopt($ch,":" );$result = curl_exec($ch);if (curl_errno($ch)) { echo 'Error:' . curl_error($ch);}curl_close ($ch);
没有sspI
然后curl无法找出默认凭据,而是必须使用CURLOPT_PROXYUSERPWD选项设置用户名和密码,如下所示:
curl_setopt($ch,"clark%20kent:superman");总结
以上是内存溢出为你收集整理的卷曲选项等同于Net.Webclient的“useDefaultCredentials”全部内容,希望文章能够帮你解决卷曲选项等同于Net.Webclient的“useDefaultCredentials”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)