我是C#的新手,正在研究從Web刮取URL的窗口應用程序。應用程序需要Internet連接才能收集來自Internet的URL。問題是什麼時候發生,當沒有互聯網連接。並且應用程序顯示這種類型的錯誤。如何在C#中顯示messagebox當HttpWebResponse無法連接到服務器/互聯網
型 'System.Net.WebException' 發生在 System.dll中的附加信息的未處理的異常:遠程名稱不能被 解決: 'www.google.com'
的問題是我寫的代碼告訴用戶,沒有互聯網連接。而不是顯示這種類型的Bug。 這是我正在處理的代碼。
listBox1.Items.Clear();
StringBuilder sb = new StringBuilder();
byte[] ResultsBuffer = new byte[8192];
string SearchResults = "http://www.google.com/search?num=1000&q=" + txtKeyWords.Text.Trim();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(SearchResults);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
string tempString = null;
int count = 0;
do
{
count = resStream.Read(ResultsBuffer, 0, ResultsBuffer.Length);
if (count != 0)
{
tempString = Encoding.ASCII.GetString(ResultsBuffer, 0, count);
sb.Append(tempString);
}
}
while (count > 0);
string sbb = sb.ToString();
HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument();
html.OptionOutputAsXml = true;
html.LoadHtml(sbb);
HtmlNode doc = html.DocumentNode;
foreach (HtmlNode link in doc.SelectNodes("//a[@href]"))
{
//HtmlAttribute att = link.Attributes["href"];
string hrefValue = link.GetAttributeValue("href", string.Empty);
if (!hrefValue.ToString().ToUpper().Contains("GOOGLE") && hrefValue.ToString().Contains("/url?q=") && hrefValue.ToString().ToUpper().Contains("HTTP://"))
{
int index = hrefValue.IndexOf("&");
if (index > 0)
{
hrefValue = hrefValue.Substring(0, index);
listBox1.Items.Add(hrefValue.Replace("/url?q=", ""));
}
}
}
嘗試尋找到異常處理https://msdn.microsoft.com/ library/ms229005(v = vs.100).aspx – MattC
* try-catch *會捕獲「bug」並給你顯示一個消息框的空間,說沒有互聯網 –
@SethKitchen你可以參考這裏的代碼嗎? – Shah