我将假设答案是否定的,但是......有没有办法使用 WebClient 发送 HEAD 方法并将标题作为字符串或类似的东西返回?
user34537
问问题
10225 次
3 回答
27
你是对的 WebClient 不支持这个。如果需要此功能,可以使用 HttpWebRequest 并将方法设置为 HEAD:
System.Net.WebRequest request = System.Net.WebRequest.Create(uri);
request.Method = "HEAD";
request.GetResponse();
于 2010-07-16T21:50:06.660 回答
18
另一种方法是从 WebClient 继承并覆盖GetWebRequest(Uri address)。
public class ExWebClient : WebClient
{
public string Method
{
get;
set;
}
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest webRequest = base.GetWebRequest(address);
if (!string.IsNullOrEmpty(Method))
webRequest.Method = Method;
return webRequest;
}
}
于 2012-10-12T15:41:03.337 回答
4
我请求的大多数 Web 服务器都会接受这种方法。但是,并非每个 Web 服务器都这样做。例如,IIS6 有时会接受请求方法。
这是在不允许方法时返回的状态码...
catch (WebException webException)
{
if (webException.Response != null)
{
//some webservers don't allow the HEAD method...
if (((HttpWebResponse) webException.Response).StatusCode == HttpStatusCode.MethodNotAllowed)
谢谢,迈克
于 2012-09-19T15:55:21.697 回答