如何在c#中找到URL的内容
本文关键字:URL | 更新日期: 2023-09-27 18:03:14
我有一个URL。现在我想找出URL的内容。我所说的URL内容是指URL是否包含html页面、视频或图像/照片。
最简单的方法是使用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"
)。这将开始下载页面,但您仍然可以查看内容类型头。
可能开始使用WebClient
并访问/下载页面。然后使用HTML解析器和您认为最好的任何方法来确定页面上的内容类型。
除了遵循链接,获取结果并从文件内容中找出它是什么文件(这相当棘手)之外,没有傻瓜式的方法。
您可以尝试从文件扩展名或返回的content-type
头(您可以发出HEAD
请求)确定类型应该是什么。这将告诉您服务器声明的文件类型。
为了便于测试,这是一个控制台应用程序,但它应该与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();
}
}
}