WebRequest
це абстрактний клас, який має заводський метод, Create
який залежно від переданої URL-адреси створює екземпляр конкретного підкласу. Вам потрібно чи хочете
HttpWebRequest httpreq = (HttpWebRequest)WebRequest.Create(strUrl);
замість цього,
WebRequest req = WebRequest.Create(strUrl);
залежить від ваших потреб та від того, які URL-адреси ви передаєте.
Якщо ви передаєте лише HTTP: URL-адреси, то колишній код дозволяє отримати доступ до властивостей та методів, які підклас HttpWebRequest
реалізує на додаток до тих, що визначені в базовому класі WebRequest
. Але якщо ви перейшли в FTP: URL, то спроба передати це HttpWebRequest
буде невдалою.
Останнє є загальним і не вийде з ладу для будь-якого з типів підтримуваних URL-адрес, але, звичайно, без введення будь-якого підкласу ви можете отримати доступ лише до властивостей та методів, які визначає базовий клас.
- через Мартіна Гоннена