Я собираюсь предположить, что ответ - нет, но... Есть ли способ использовать WebClient для отправки метода HEAD и возврата заголовков в виде строки или чего-то подобного?
HEAD с WebClient?
Ответ 1
Вы правы. WebClient не поддерживает это. Вы можете использовать HttpWebRequest и установить метод HEAD, если вы хотите эту функциональность:
System.Net.WebRequest request = System.Net.WebRequest.Create(uri);
request.Method = "HEAD";
request.GetResponse();
Ответ 2
Другим способом является наследование WebClient и переопределение GetWebRequest (адрес Uri).
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;
}
}
Ответ 3
Большинство веб-серверов, которые я запрашиваю, будут принимать этот метод. Однако не каждый веб-сервер. Например, IIS6 будет выполнять метод запроса SOMETIMES.
Это код состояния, который возвращается, когда метод не разрешен...
catch (WebException webException)
{
if (webException.Response != null)
{
//some webservers don't allow the HEAD method...
if (((HttpWebResponse) webException.Response).StatusCode == HttpStatusCode.MethodNotAllowed)
Спасибо, Mike