C# Webbrowser控件在代理旋转时无法正常工作
我正在使用许多ipz,并一个接一个地使用它们,一些在一段时间后重复,一些在几秒钟内使用此代码:C# Webbrowser控件在代理旋转时无法正常工作,c#,winforms,visual-studio-2010,webbrowser-control,C#,Winforms,Visual Studio 2010,Webbrowser Control,我正在使用许多ipz,并一个接一个地使用它们,一些在一段时间后重复,一些在几秒钟内使用此代码: string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"; RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true); RegKey.SetValue("ProxyServer", proxy); RegKey.
string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);
RegKey.SetValue("ProxyServer", proxy);
RegKey.SetValue("ProxyEnable", 1);
webBrowser1.Navigate(customLinks[0].ToString());
问题是它并不总是成功,因为我注意到很多次。假设一个ip被阻止,所以它需要下一个,但我仍然看到下一个,甚至下一个阻塞
所以,假设它不采取代理这么快等?也许它需要刷新。请让我知道如何实现这一点
谢谢听起来您需要在浏览器中设置一个代理,然后自己实现该代理,这样它可以将请求旋转到您的代理列表中。我从谷歌上获得了很多帮助,但不记得确切的链接: 下面是代码,我调用刷新函数并传递代理,它在任何时候都能100%工作
public struct Struct_INTERNET_PROXY_INFO
{
public int dwAccessType;
public IntPtr proxy;
public IntPtr proxyBypass;
};
[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);
private void RefreshIESettings(string strProxy)
{
const int INTERNET_OPTION_PROXY = 38;
const int INTERNET_OPEN_TYPE_PROXY = 3;
Struct_INTERNET_PROXY_INFO struct_IPI;
// Filling in structure
struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy);
struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local");
// Allocating memory
IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));
// Converting structure to IntPtr
Marshal.StructureToPtr(struct_IPI, intptrStruct, true);
bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));
}
我不明白这一点,请你解释一下,写一个HTTP代理。仅将浏览器指向该代理。对代理进行编程以通过列表中的代理发出请求。或者,您可以重新调整现有实现的用途,例如::|…我的实现不可能保持不变并正常工作吗?您也可以提供上述示例。