Pourquoi dirigez-vous DirectCast le HttpWebRequest dans VB.NET ?
-
21-12-2019 - |
Question
Lorsque j'utilise la méthode POST pour une requête httpweb, je vois souvent une ligne de code comme celle-ci :
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.empireavenue.com/user/login/do"), HttpWebRequest)
Pourquoi faisons-nous un DirectCast ici ?Que fait-il exactement ?
Modifier:Ou peut-être que ma question est la suivante : pourquoi appelons-nous WebRequest.Create et le convertissons en HttpWebRequest ?Que se passe-t-il ici, techniquement parlant ?
La solution
WebRequest.Create
est une méthode d'usine qui peut renvoyer différents types de requêtes.Pour cette raison, ils sont tous renvoyés sous la forme WebRequest
.Mais parce que tu sais peut-être que tu t'attends à ce qu'il revienne HttpWebRequest
(parce que l'Uri que vous avez fourni est http), vous pouvez le downcast pour accéder aux méthodes et propriétés exposées par HttpWebRequest
, qui ne sont pas exposés par WebRequest
classe de base.
Mais vous devriez probablement utiliser WebRequest.CreateHttp()
au lieu de WebRequest.Create()
, si vous savez que vous allez utiliser le protocole http.
Autres conseils
parce que httpwebrequest implémente WebRequest et WebRequest.create () retourne un objet WebRequest.