我正在重溫我的som舊代碼,並且偶然發現了一種基於網址獲取網站標題的方法。這不是真的,你會稱之爲穩定的方法,因爲它往往不能產生結果,有時甚至會產生不正確的結果。此外,有時它不能顯示標題中的一些字符,因爲它們是可選編碼。如何從c#獲取網站標題#
有沒有人對這個舊版本有改進建議?
public static string SuggestTitle(string url, int timeout)
{
WebResponse response = null;
string line = string.Empty;
try
{
WebRequest request = WebRequest.Create(url);
request.Timeout = timeout;
response = request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding);
while(streamRead.EndOfStream != true)
{
line = streamRead.ReadLine();
if (line.Contains("<title>"))
{
line = line.Split(new char[] { '<', '>' })[2];
break;
}
}
}
catch (Exception) { }
finally
{
if (response != null)
{
response.Close();
}
}
return line;
}
最後要注意的 - 我想代碼的運行速度爲好,因爲它阻止,直到頁面被取出,所以如果我能得到的只有網站標題,而不是整個頁面,它會很棒。
你肯定*不*想給每個請求其自己的線程如果你想一次處理10,000個請求! (所涉及的堆棧會讓你的內存像瘋了一樣。)使用異步API將並行化操作*不需要*爲每個請求花費一個線程。 – 2008-11-30 20:34:00
這是一個有爭議的問題,因爲我只需要一次執行一個請求。速度的需要是因爲用戶正在等待答覆。 – 2008-11-30 20:51:28