你为什么在VB.NET中直接使用HttpWebRequest?

时间:2014-04-11 19:51:19

标签: vb.net directcast

当对httpwebrequest使用POST方法时,我经常会看到一行代码:

Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.empireavenue.com/user/login/do"), HttpWebRequest)

为什么我们在这里做DirectCast?它到底在做什么?

编辑:或者我的问题是,为什么我们调用WebRequest.Create并将其转换为HttpWebRequest?从技术上讲这里发生了什么?

2 个答案:

答案 0 :(得分:4)

WebRequest.Create是一种工厂方法,可以返回不同类型的请求。因为所有这些都被返回类型为WebRequest。但是因为您可能知道,您希望它返回HttpWebRequest(因为您提供的Uri是http),您可以向下转发它以访问由{{1}公开的方法和属性},HttpWebRequest基类没有公开。

但是,如果您知道自己将使用http协议,则应该使用WebRequest代替WebRequest.CreateHttp()

答案 1 :(得分:0)

因为HttpWebRequest实现了WebRequest而WebRequest.Create()返回了一个WebRequest对象。