WebRequest
es una clase abstracta, que tiene un método de fábrica Create
que, dependiendo de la URL pasada, crea una instancia de una subclase concreta. Si lo necesita o desea en
HttpWebRequest httpreq = (HttpWebRequest)WebRequest.Create(strUrl);
lugar de
WebRequest req = WebRequest.Create(strUrl);
depende de sus necesidades y del tipo de URL que ingrese.
Si solo pasa HTTP: URL, entonces el código anterior le permite acceder a las propiedades y métodos que HttpWebRequest
implementa la subclase además de los definidos en la clase base WebRequest
. Pero si pasa en un FTP: URL, el intento de transmisión HttpWebRequest
fallará.
Este último es genérico y no fallará en ninguno de los tipos de URL compatibles, pero, por supuesto, sin conversión a ninguna subclase, solo puede acceder a las propiedades y métodos que define la clase base.
- a través de Martin Honnen