3
我有以下代碼的WebRequest GetResponse的堅持與默認代理
private bool IsOnline()
{
try
{
var wr = WebRequest.CreateHttp("http://www.google.com");
wr.KeepAlive = false;
wr.Credentials = CredentialCache.DefaultCredentials;
using (wr.GetResponse())
{
return true;
}
}
catch
{
return false;
}
}
當我執行它,它仍然停留在GetResponse的永遠在線。
感謝回覆,我們發現問題出現在默認代理中。 事實上,如果你建造一個新的代理通過以下方式它的工作原理
var registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", false);
var proxy = (string)registry.GetValue("ProxyServer");
var isProxyEnabled = (int)registry.GetValue("ProxyEnable");
if (isProxyEnabled > 0)
{
wr.Proxy = new WebProxy(proxy, true, null, System.Net.CredentialCache.DefaultNetworkCredentials);
}
的問題是,從註冊表中手動設置代理閱讀此解決辦法代碼。如果用戶選擇「自動檢測設置」,則不起作用。
這樣: - 如何可以發現在這種情況下,代理地址? - 爲什麼默認代理不起作用?
它會卡住第一次嘗試或第n次嘗試? – 2013-05-14 12:01:07
如果它與Fiddler一起工作,它可能是一個代理問題......你可以從IE訪問google.com嗎? – 2013-05-14 12:01:56
@DanielMošmondor第一次嘗試 – Roberto 2013-05-14 12:02:44