文字コードを考慮してWebClientでサイトソースを取得する
private async Task<string> GetSiteSource(string url, Uri reffrrer = null)
{
using (System.Net.WebClient objWebClient = new System.Net.WebClient())
{
if(reffrrer != null)
objWebClient.Headers.Add(HttpRequestHeader.Referer, reffrrer.ToString());
objWebClient.Headers.Add(HttpRequestHeader.UserAgent, strUserAgent);
objWebClient.Encoding = System.Text.Encoding.UTF8;
string strSource = await objWebClient.DownloadStringTaskAsync(url);
ContentType contentType = new ContentType(objWebClient.ResponseHeaders["Content-Type"]);
switch(contentType.CharSet.ToLower().Replace("-", ""))
{
case "utf8":
break;
case "eucjp":
objWebClient.Encoding = System.Text.Encoding.GetEncoding("euc-jp");
strSource = await objWebClient.DownloadStringTaskAsync(url);
break;
case "shiftjis":
objWebClient.Encoding = System.Text.Encoding.GetEncoding("shift-jis");
strSource = await objWebClient.DownloadStringTaskAsync(url);
break;
default:
break;
}
return strSource;
}
}
ディスカッション
コメント一覧
まだ、コメントがありません