Warum verwenden Sie DirectCast für die HttpWebRequest in VB.NET?
-
21-12-2019 - |
Frage
Wenn ich die POST-Methode für eine httpwebrequest verwende, sehe ich oft eine Codezeile wie diese:
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.empireavenue.com/user/login/do"), HttpWebRequest)
Warum machen wir hier einen DirectCast?Was genau macht es?
Bearbeiten:Oder vielleicht lautet meine Frage: Warum rufen wir WebRequest.Create auf und wandeln es in ein HttpWebRequest um?Was ist hier technisch gesehen los?
Lösung
WebRequest.Create
ist eine Factory-Methode, die verschiedene Arten von Anfragen zurückgeben kann.Aus diesem Grund werden alle als typisiert zurückgegeben WebRequest
.Sondern weil Sie vielleicht wissen, dass Sie mit einer Rückkehr rechnen HttpWebRequest
(Da der von Ihnen angegebene Uri http ist), können Sie ihn herunterwandeln, um Zugriff auf Methoden und Eigenschaften zu erhalten, die von bereitgestellt werden HttpWebRequest
, die nicht durch ausgesetzt sind WebRequest
Basisklasse.
Aber Sie sollten es wahrscheinlich verwenden WebRequest.CreateHttp()
anstatt WebRequest.Create()
, wenn Sie wissen, dass Sie das HTTP-Protokoll verwenden werden.
Andere Tipps
weil httpwebrequest implementiert Webresthest und weBrequest.Create () Gibt ein WeBrequest-Objekt zurück.