当对httpwebrequest使用POST方法时,我经常会看到一行代码:
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.empireavenue.com/user/login/do"), HttpWebRequest)
为什么我们在这里做DirectCast?它到底在做什么?
编辑:或者我的问题是,为什么我们调用WebRequest.Create并将其转换为HttpWebRequest?从技术上讲这里发生了什么?
答案 0 :(得分:4)
WebRequest.Create
是一种工厂方法,可以返回不同类型的请求。因为所有这些都被返回类型为WebRequest
。但是因为您可能知道,您希望它返回HttpWebRequest
(因为您提供的Uri是http),您可以向下转发它以访问由{{1}公开的方法和属性},HttpWebRequest
基类没有公开。
但是,如果您知道自己将使用http协议,则应该使用WebRequest
代替WebRequest.CreateHttp()
。
答案 1 :(得分:0)
因为HttpWebRequest实现了WebRequest而WebRequest.Create()返回了一个WebRequest对象。