【问题标题】:Accessing IExplorer through a proxy for the first time using WebRequest error首次使用 WebRequest 错误通过代理访问 IExplorer
【发布时间】:2016-05-21 20:59:54
【问题描述】:

我第一次尝试使用 WebRequest 在 C# 中使用代理访问 Internet Explorer。

该应用程序背后的想法是,您可以通过 IExplorer 访问网站,并使用您在文本框中输入的代理(如下所示)

我尝试了我的方法,但它连接到网站一秒钟并显示我的正常 IP(不是代理 IP)然后它崩溃并给我这个错误(在下面)

不知道是什么原因导致它和/或如何解决它。我在想也许有经验的人会比我更好地理解这一点,因为这是我第一次在 C# 中使用代理

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        webBrowser1.Navigate(browserNavigationTxtBox.Text);
        var request = (HttpWebRequest)WebRequest.Create("http://www.whatsmyip.org/");
        var myproxy = new WebProxy(proxyBox.Text, false);
        request.Proxy = myproxy;
        request.Method = "GET";
        var response = (HttpWebResponse)request.GetResponse();
    }

    private void Start_Click(object sender, EventArgs e)
    {
        webBrowser1.Navigate(browserNavigationTxtBox.Text);
    }
}

}

【问题讨论】:

  • 根据the docs,您需要一个 uri 作为代理,而不仅仅是 IP 和端口。请改用http://180.175.16.228:8118/
  • @CharlesMager 看起来该应用程序仅在我尝试该操作时冻结或崩溃并给出相同的错误,但下次使用代理时我会记住这一点,这实际上是一个非常好的提示!

标签: c# .net proxy webrequest


【解决方案1】:

虽然您可以通过编程更改注册表值来设置代理

HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyOverride

我会使用FiddlerCore 设置我的代理以更好地控制发送和接收的内容(并能够使用 socks 代理)。

MyProxy.Start();
webBrowser1.Navigate(url);

public class MyProxy
{
    public static void Start()
    {
        Fiddler.FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
        Fiddler.FiddlerApplication.Startup(8888, true, true);
    }

    static void FiddlerApplication_BeforeRequest(Fiddler.Session oSession)
    {
        oSession["X-OverrideGateway"] = "94.76.117.14:8080"; // <-- Your Http Proxy
        //oSession["x-OverrideGateway"] = "socks=ip:port"; //For socks proxy 
        Console.ForegroundColor = ConsoleColor.Blue;
        Console.WriteLine(oSession.fullUrl);
    }

    public static void Stop()
    {
        Fiddler.FiddlerApplication.Shutdown();
    }
}

【讨论】:

  • 我不能改变 oSession["X-OverrideGateway"] = "94.76.117.14:8080";到我的文本框的价值?
  • @Alexander.Matt 自己测试一下,在这里分享结果如何?
  • 我做到了,但我的文本框没有在智能感知中弹出
  • 严重性 非静态字段、方法或属性“Form1.proxyBox”需要对象引用
  • 我试过这样做 oSession["X-OverrideGateway"] = proxyBox.Text;
猜你喜欢
  • 2014-08-28
  • 2012-08-29
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多