【问题标题】:C# Proxy with username and password带有用户名和密码的 C# 代理
【发布时间】:2011-05-17 09:55:58
【问题描述】:

我设置了一个代理实例并将其与 webrequest 对象一起使用。

        WebProxy a = new WebProxy("ip:port", true);
        proxy.Credentials = new NetworkCredential("username", "password");

        WebRequest b = WebRequest.Create("webpage url");
        b.Proxy = proxy;

        WebResponse c = req.GetResponse();

        StreamReader d = new StreamReader(c.GetResponseStream());

        d.ReadToEnd();//web page source

正常工作,但我想在 Web 浏览器控件中显示页面,而不会丢失信息和设计。如果我将控件的文档文本设置为刚刚下载的源。它的格式很糟糕。

编辑:我有没有办法将代理对象应用到 Web 浏览器控件本身?

【问题讨论】:

  • 我认为它与代理或名称或密码无关。现代网页是许多文件、样式表、javascript、图像的集合,您可以命名它,它们都会影响页面的外观。它不会按照你的方式工作。

标签: c# proxy


【解决方案1】:

edit WebBrowser 控件仅使用 IE 的设置,因此您不必自己设置代理。见http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/f4dc3550-f213-41ff-a17d-95c917bed027/如何在代码中设置IE代理。


这里的问题是您通过WebRequest 收到的HTML 包含当前上下文中不存在的CSS 文件的相对路径。您可以通过在 <head> 部分添加以下标记来修改 HTML:

<base href="http://domainname.com/" />

之后,WebBrowser 控件会解析到此标记中域的相对 CSS 路径。

【讨论】:

  • 有效,但我需要一切都通过代理运行。所以这是不行的。
  • 这对用户名和密码没有帮助
最近更新 更多