【发布时间】:2011-09-10 01:12:34
【问题描述】:
我有一个很大的 URL 列表(随着时间的推移而扩展),我需要检查它们的类型。这是我目前拥有的代码:
private string[] MIME = new string[] {
"audio/ogg - ogg",
"video/ogg - ogg",
"application/f4v - mp4",
"application/octet-stream - mp3",
"audio/aac - mp3",
"audio/mp3 - mp3",
"audio/mp4 - mp4",
"audio/mp4-latm - m4a",
"audio/mpeg - mp3",
"audio/mpeg3 - mp3",
"audio/x-mpeg - mp3",
"audio/x-ms-wma - wma",
"video/f4v - mp4",
"video/mp4 - mp4",
};
private string CheckType(string url) {
try {
HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create(new Uri(url));
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0";
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webRequest.Timeout = 5000;
HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse();
long fileSize = webResponse.ContentLength;
foreach (string mime_entry in MIME) {
string sheader = webResponse.Headers.ToString();
string[] mime = mime_entry.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
if (sheader.Contains(mime[0])) {
return mime[1] + " " + fileSize.ToString();
}
}
return "";
} catch (Exception ex) {
return "";
}
}
- 我可以更快地提出请求吗?
- 我能否以某种方式使用多线程更快地迭代列表(如果其中一个线程由于 http 响应而停止怎么办?)
- 有没有更好的方法来做到这一点?
【问题讨论】:
标签: .net http network-programming c#-2.0