1

在对 httpwebrequest 使用 POST 方法时,我经常看到这样一行代码:

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

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

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

4

2 回答 2

4

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

但是,如果您知道要使用 http 协议,您可能应该使用WebRequest.CreateHttp()而不是。WebRequest.Create()

于 2014-04-11T20:00:34.497 回答
0

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

于 2014-04-11T19:58:54.847 回答