WebRequest
é uma classe abstrata, que possui um método de fábrica Create
que, dependendo da URL passada, cria uma instância de uma subclasse concreta. Se você precisa ou deseja, em
HttpWebRequest httpreq = (HttpWebRequest)WebRequest.Create(strUrl);
vez de
WebRequest req = WebRequest.Create(strUrl);
depende de suas necessidades e dos tipos de URLs que você passa.
Se você passar apenas HTTP: URL's, o código anterior permitirá que você acesse as propriedades e métodos que a subclasse HttpWebRequest
implementa além daqueles definidos na classe base WebRequest
. Mas se você transmitisse um FTP: URL, a tentativa de transmitir para HttpWebRequest
falharia.
O último é genérico e não falhará em nenhum dos tipos de URL suportados, mas é claro, sem lançar para qualquer subclasse, você só pode acessar as propriedades e métodos que a classe base define.
- via Martin Honnen