.net - headers - webclient get c#
¿CABEZA con WebClient? (3)
Voy a asumir que la respuesta es no pero ... ¿Hay alguna forma de usar WebClient para enviar el método HEAD y devolver los encabezados como una cadena o algo similar?
La mayoría de los servidores web que solicito aceptarán este método. Aunque no todos los servidores web lo hacen. IIS6, por ejemplo, respetará el método de solicitud ALGUNAS VECES.
Este es el código de estado que se devuelve cuando un método no está permitido ...
catch (WebException webException)
{
if (webException.Response != null)
{
//some webservers don''t allow the HEAD method...
if (((HttpWebResponse) webException.Response).StatusCode == HttpStatusCode.MethodNotAllowed)
Gracias Mike
Otra forma es heredar de WebClient y anular GetWebRequest (dirección 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;
}
}
Tienes razón WebClient no soporta esto. Puede usar HttpWebRequest y establecer el método en HEAD si desea esta funcionalidad:
System.Net.WebRequest request = System.Net.WebRequest.Create(uri);
request.Method = "HEAD";
request.GetResponse();