我有一个网址。现在我想找出 URL 的内容。URL 的内容是指 URL 是否包含 html 页面、视频或图像/照片。如何使用 c# 在 asp.net 中执行此操作。
问问题
1321 次
4 回答
5
最简单的方法是使用 HEAD 请求HttpWebRequest
:
var req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "HEAD";
using (var response = (HttpWebResponse)req.GetResponse())
{
// Here, examine the response headers.
// In particular response.ContentType
}
在某些情况下,HEAD 可能会给您一个 405 错误,这意味着服务器不支持 HEAD。
在这种情况下,只需执行 GET 请求(更改req.Method = "GET"
)。这将开始下载页面,但您仍然可以查看内容类型标题。
于 2013-03-11T13:10:35.967 回答
0
为了更容易测试,这是一个控制台应用程序,但它应该同样适用于 ASP.NET:
namespace ConsoleApplication1
{
using System;
using System.Net;
class Program
{
static void Main()
{
//var request = WebRequest.Create("https://www.google.com"); // page will result in html/text
var request = WebRequest.Create(@"https://www.google.de/logos/2013/douglas_adams_61st_birthday-1062005.2-res.png");
request.Method = "HEAD"; // only request header information, don't download the whole file
var response = request.GetResponse();
Console.WriteLine(response.ContentType);
Console.WriteLine("Done.");
Console.ReadLine();
}
}
}
于 2013-03-11T13:19:55.883 回答
0
除了跟随链接,获取结果并从文件内容中找出它是什么文件(这相当棘手)之外,没有万无一失的方法。
您可以尝试从文件扩展名或返回的content-type
标头(您可以发出HEAD
请求)确定应该是什么类型。这将告诉您服务器声称文件类型是什么。
于 2013-03-11T13:10:13.980 回答