我将假设答案是否定的...... 有没有办法使用WebClient发送HEAD方法并将标题作为字符串或类似的东西返回?
答案 0 :(得分:20)
你是对的WebClient不支持这个。如果需要此功能,可以使用HttpWebRequest并将方法设置为HEAD:
System.Net.WebRequest request = System.Net.WebRequest.Create(uri);
request.Method = "HEAD";
request.GetResponse();
答案 1 :(得分:15)
另一种方法是从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;
}
}
答案 2 :(得分:4)
我请求的大多数Web服务器都会接受此方法。不是每个Web服务器都可以。例如,IIS6将遵循请求方法SOMETIMES。
这是不允许方法时返回的状态代码...
catch (WebException webException)
{
if (webException.Response != null)
{
//some webservers don't allow the HEAD method...
if (((HttpWebResponse) webException.Response).StatusCode == HttpStatusCode.MethodNotAllowed)
谢谢, 麦克