Почему вы направляете запрос HttpWebRequest в VB.NET?
При использовании метода POST для httpwebrequest я часто вижу строку кода, подобную этой:
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.empireavenue.com/user/login/do"), HttpWebRequest)
Почему мы делаем DirectCast здесь? Что именно он делает?
Изменить: Или, может быть, мой вопрос, почему мы вызываем WebRequest.Create и приводить его к HttpWebRequest? Что здесь происходит с технической точки зрения?
2 ответа
WebRequest.Create
это фабричный метод, который может возвращать различные типы запросов. Из-за этого все они возвращаются в виде WebRequest
, Но потому что вы можете знать, что вы ожидаете его возвращения HttpWebRequest
(потому что Uri, который вы указали, является http), вы можете уменьшить его, чтобы получить доступ к методам и свойствам, предоставляемым HttpWebRequest
, которые не подвергаются WebRequest
Базовый класс.
Но вы, вероятно, должны использовать WebRequest.CreateHttp()
вместо WebRequest.Create()
, если вы знаете, что собираетесь использовать протокол HTTP.
Потому что HttpWebRequest реализует WebRequest, а WebRequest.Create() возвращает объект WebRequest.