私は自分の古いコードを再訪していて、URL に基づいて Web サイトのタイトルを取得する方法を見つけました。多くの場合、結果を生成できず、時には誤った結果を生成することさえあるため、これは実際には安定したメソッドと呼ばれるものではありません。また、代替エンコーディングであるため、タイトルの一部の文字が表示されないことがあります。
この古いバージョンを改善するための提案はありますか?
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;
}
最後に 1 つ - ページがフェッチされるまでコードがブロックされるため、コードの実行速度も向上させたいと考えています。そのため、ページ全体ではなくサイト ヘッダーのみを取得できれば、それは素晴らしいことです。