我知道 WebRequest 和 WebResponse 对象。问题是我并不是很想得到网页的源代码,我只想检查链接是否存在。问题是,如果我使用 GetResponse 方法,它会拉取网站的整个源代码。
我正在创建一个带有许多链接的断开链接检查器。检查它们需要相当长的时间。如果有办法从网络链接中获取最少的信息?只有足够的信息来查看链接是否有效或损坏(不是整个源代码)。
一个答案(除了使用异步传输)将不胜感激!
我知道 WebRequest 和 WebResponse 对象。问题是我并不是很想得到网页的源代码,我只想检查链接是否存在。问题是,如果我使用 GetResponse 方法,它会拉取网站的整个源代码。
我正在创建一个带有许多链接的断开链接检查器。检查它们需要相当长的时间。如果有办法从网络链接中获取最少的信息?只有足够的信息来查看链接是否有效或损坏(不是整个源代码)。
一个答案(除了使用异步传输)将不胜感激!
检查链接是否存在的标准方法是使用HEAD
请求,这会导致远程服务器发送请求对象的标头,而不是对象本身。如果您因此请求了一个不在服务器上的对象,服务器会给您正常的 404 响应,但如果它确实存在,您会收到 200 响应,并且在标头之后没有数据。这样,很少有无趣的数据通过网络传输。
WebRequest request = HttpWebRequest.Create("http://www.foo.com/");
request.Method = "HEAD"; // Just get the document headers, not the data.
HEAD
类似于GET
,只是我们获取的不是文件内容,而是标题。