Почему вы направляете запрос 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.

Другие вопросы по тегам