这里就VB.NET WEB的WebRequest 和 WebResponse请求/响应模型位于顶部,提供一种简单的方式访问 VB.NET WEB上的资源。

在向咱们详细介绍VB.NET之前,首先让咱们了解下VB.NET WEB。咱们都知道WebRequest 和 WebResponse是两种咱们拜访Internet常用的类,严厉说,WebRequest是一个笼统基类,咱们一般用它的衍生类 HttpWebRequest 以及 FileWebRequest,FTP的拜访需求手动注册,详细看后面的刺进协议。

全面剖析VB.NET WEB使用(vb.net web编程)  VB.NET WEB 第1张

#T#从逻辑角度上讲,Net classes 包含三个层:恳求/呼应层、运用协议层和传输层,顺次打开,从运用程序到网络。WebRequest 和 WebResponse 类代表恳求/呼应层。HTTP、TCP 和 UDP 类组成了运用协议层,而套接字存在于传输层中。WebRequest/WebResponse 和 HTTP 能够在 System.Net 称号空间中找到,而 TCP/UDP 和套接字则处在 System.Net.Sockets 称号空间中,包含也常用的UDPClient、TCPCLient。

WebRequest 和 WebResponse(恳求/呼应模型)
恳求/呼应模型坐落顶部,供给一种简略的办法拜访 VB.NET WEB上的资源。WebRequest 是 .NET 结构的用于拜访 Internet 数据的恳求/呼应模型的笼统基类。运用该恳求/呼应模型的运用程序能够用协议不可知的办法从 Internet 恳求数据,什么意思?便是协议不详细。

这两种类供给了一种拜访网上资源的一般办法。WebRequest 表明一个网络恳求,包含比如 RequestURI、Headers、Credentials 和 ContentType 等特点。WebRequest 上的首要办法有 GetRequestStream、GetResponse 以及它们的异步办法Begin/EndGetRequestStream 和 Begin/EndGetResponse。 GetRequestStream 用于获取流以便将数据上载到服务器。GetResponse 用于获取服务器回来的呼应目标。WebResponse 表明从处理该恳求的服务器接回收的呼应。其要害特点有 ContentLength、ContentType、headers、ResponseURI 和 Status。WebResponse 上最常用的办法是 GetResponseStream,它用于从服务器读取(下载)数据。

当对 WebRequest.GetResponse 进行调用时,一般宣布实践的网络恳求。

这个示例显现怎么获取一个 VB.NET WEB 页并将其内容输出:

  1. DimurlAsNewUri("http://www.yahoo.com") ‘界说一个URI
  2. DimReqAsWebRequest
  3. Req=WebRequest.Create(url)
  4. DimRespAsWebResponse
  5. Try
  6. Resp=Req.GetResponse‘取得一个呼应
  7. CatchexcAsException
  8. MsgBox(exc.Message)
  9. EndTry
  10. DimnetStreamAsStreamReader
  11. netStream=NewStreamReader(Resp.GetResponseStream)
  12. Debug.WriteLine(netStream.ReadToEnd)

当然,上面的比如只是一个简略的操作,能够回来一个流式的数据。下面充沛发掘一下它们的优势(与WebClient比较)。

可刺进协议
当某个运用程序只是运用 WebRequest 和 WebResponse 类时,无需修正运用程序的任何代码就能够“刺进”和运用新的协议。注册一个带 WebRequestFactory 的 URI 形式在程序的继续时间内刺进协议支撑。注册是经过调用 WebRequestFactory.Register() 办法完结的。关于 HTTP 协议,这种办法是从内部调用的,因而它被默许注册;尽管如此,在将来能够完成和注册恣意数目的其他协议。当然,由于 Internet 上的协议数量巨大,这种模型并不是对一切的状况都抱负。那些“饶舌”的或别的排挤恳求/呼应模型的协议或许会在 TCP 或 UDP 类中更好地履行,或许在某些状况下会在 Sockets 类中更好地履行。有关HTTP方面的操作咱们能够运用HttpWebRequest。

下面阐明几个详细问题:

1. 程序分块

当运用程序需求发送或接纳数据,而数据的精确巨细在下载/ 上载开始时还不知道时,程序分块是有用的。当根据其他运用程序或服务器逻辑正在创建所评论的数据时,运用程序分块技能是最遍及的。要发送分块的数据,应该将 WebRequest 转换为 HttpWebRequest 而且将 HttpWebRequest.SendChunked 的特点设置为TRUE。假如直接用HttpWebRequest天然就免了:)

2.HTTP 管道技能

管道技能是 HTTP 1.1 的一项功用,它答应 Net classes 经过持久性衔接向后端服务器发送多个 HTTP 恳求,而无需在宣布下次恳求之前等候来自服务器的呼应。这会明显影响功能,由于从服务器恳求多个资源的运用程序不会被堵塞而等候某个特定资源(或许是服务器上一个十分耗时的操作,如数据库查找)。

3. 身份验证
Net classes 支撑各种客户机身份验证机制,包含“摘要”、“根本”、Kerberos、NTLM 和“定制”。身份验证是经过在作出恳求前对 WebRequest.Credentials 目标进行设置来到达的。在“摘要”和“根本”状况下,会指定用户名和口令。关于 NTLM 或 Kerberos,则运用 Windows 安全机制,而且 Credential 目标或许能够被设置为用户名、口令和域的结合,或许能够恳求运用体系默许值。

4.署理支撑
在 Net classes 中的 HTTP 署理支撑能够在每个恳求的基础上进行操控,或许能够一次大局性地设置它,用于运用程序的生存期。这样好像就能够验证Proxy是不是免费;)

转载请说明出处
知优网 » 全面剖析VB.NET WEB使用(vb.net web编程)

发表评论

您需要后才能发表评论