我正试图通过使用WebRequest首次使用代理访问Internet Explorer ...
该应用程序背后的想法是,您可以通过IExplorer使用您在文本框中输入的代理访问网站(如下所示)
我尝试了我的方法,但它连接到网站一小段时间并显示我的正常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);
}
}
}
答案 0 :(得分: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();
}
}