【问题标题】:Error querying the https webpage查询 https 网页时出错
【发布时间】:2014-10-19 02:04:01
【问题描述】:

我正在尝试从 https 网页下载网页。当我使用浏览器尝试此操作时,它可以工作,但在 C# 中不起作用。尝试了 webclient 和 WebRequest。同样的错误“未经授权”。任何帮助表示赞赏。尝试查看其他解决方案,例如使用 WebRequest 保存 cookie。但是没用。

我能够从响应中检索标题。身份验证类型是 NTLM,在浏览器中我看到一个包含用户名和密码的对话框。在我们的测试服务器上试过这个。它工作正常。但不适用于此网页。

标题 = {内容类型:文本/html 服务器:Microsoft-IIS/7.5 WWW-认证:协商,NTLM X-Powered-By: ASP.NET 日期:2014 年 8 月 25 日星期一 20:02:07 GMT 内容长度:1293 设置 Cookie:BIGipServerpool_legacy_www=1269436588.20480.0000;路径=/ }

使用网络客户端

            using (var client = new WebClient())
            {
                client.Proxy = null;
                client.Credentials = new NetworkCredential(username, password);
                ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policy) =>
                {
                    return true;
                };
                string data = client.DownloadString(url);
                return data;
            }

使用网络请求

            var request = (HttpWebRequest) WebRequest.CreateHttp(url);
            request.Credentials = new NetworkCredential(username, password, domain);
            ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policy) =>
            {
                return true;
            };
            var response = (HttpWebResponse) request.GetResponse();
            var stream = response.GetResponseStream();

【问题讨论】:

    标签: c# https httpwebrequest webclient unauthorized


    【解决方案1】:

    问题出在 URL 上。当我在浏览器中进行操作时,它会重定向到正确的 URL。提琴手日志有帮助。添加了处理 http 重定向逻辑的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多