在为httpwebrequest请求使用POST方法时,我经常看到如下一行代码:
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.empireavenue.com/user/login/do"), HttpWebRequest)我们为什么在这里做DirectCast?它到底在做什么?
编辑:或者我的问题是,为什么我们调用WebRequest.Create并将其转换为HttpWebRequest?从技术上讲,这是怎么回事?
发布于 2014-04-11 20:00:34
WebRequest.Create是一种工厂方法,可以返回不同类型的请求。正因为如此,它们都以WebRequest的形式返回。但是,因为您可能知道,您希望它返回HttpWebRequest (因为您提供的Uri是http),所以您可以对它进行向下转换,以访问由HttpWebRequest公开的方法和属性,这些方法和属性不是由WebRequest基类公开的。
但是,如果您知道要使用http协议,则应该使用WebRequest.CreateHttp()而不是WebRequest.Create()。
发布于 2014-04-11 19:58:54
因为HttpWebRequest实现了WebRequest,WebRequest.Create()返回一个WebRequest对象。
https://stackoverflow.com/questions/23021415
复制相似问题