成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面分析VB.NET WEB應用

開發 后端
這里就VB.NET WEB的WebRequest 和 WebResponse請求/響應模型位于頂部,提供一種簡單的方式訪問 VB.NET WEB上的資源。

在向大家詳細介紹VB.NET之前,首先讓大家了解下VB.NET WEB。大家都知道WebRequest 和 WebResponse是兩種我們訪問Internet常用的類,嚴格說,WebRequest是一個抽象基類,我們一般用它的衍生類 HttpWebRequest 以及 FileWebRequest,FTP的訪問需要手動注冊,具體看后面的插入協議。

#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. Dim url As New Uri("http://www.yahoo.com") ‘定義一個URI  
  2. Dim Req As WebRequest  
  3. Req = WebRequest.Create(url)  
  4. Dim Resp As WebResponse  
  5. Try  
  6. Resp = Req.GetResponse ‘獲得一個響應  
  7. Catch exc As Exception  
  8. MsgBox(exc.Message)  
  9. End Try  
  10. Dim netStream As StreamReader  
  11. netStream = New StreamReader(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是不是免費;)

責任編輯:田樹 來源: 博客
相關推薦

2009-10-28 10:04:53

VB.NET XmlW

2009-11-04 10:54:53

VB.NET MOVE

2009-10-15 10:57:16

VB.NET Text

2009-10-29 15:16:02

VB.NET文件傳送

2009-10-14 15:20:21

VB.NET窗體指針

2009-11-10 16:46:52

VB.NET指針應用

2009-10-29 11:26:28

VB.NET調用Web

2009-10-27 09:45:03

VB.NET數組

2009-10-28 17:44:31

VB.NET語言

2009-10-16 13:04:57

VB.NET字符串數組

2010-07-06 15:54:30

VB.NET UDP

2009-10-10 15:19:43

VB.NET Web

2009-11-02 14:48:45

VB.NET HOOK

2009-10-15 11:42:05

VB.Net賦值語句

2009-10-27 12:20:06

VB.NET多線程應用

2009-11-02 17:12:01

VB和VB.NET

2009-10-21 09:10:52

VB.NET壓縮

2009-10-09 15:59:41

VB.NET對象

2010-01-12 16:20:44

VB.NET類

2009-10-20 17:38:20

VB.NET exce
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人在线观看免费 | 久久久久综合 | 中文字幕精品视频 | 欧美午夜视频 | 亚洲国产欧美国产综合一区 | 久久久91 | 精品亚洲二区 | 欧美一二区| 狠狠狠干 | 91天堂网 | 午夜色播| 国产激情一区二区三区 | www.蜜桃av| 亚洲一区视频在线 | 狠狠躁躁夜夜躁波多野结依 | 成人一区二区在线 | 91精品国产高清一区二区三区 | 亚洲高清中文字幕 | 国产91丝袜在线播放 | 一区二区三区欧美 | 久久久久久久久国产成人免费 | 日日天天 | 精品一区二区免费视频 | 亚洲精品乱码久久久久久久久 | 日韩av最新网址 | 天天操狠狠操 | 亚洲成人动漫在线观看 | 一区二区三区高清不卡 | 久久乐国产精品 | 日日干天天操 | 国产成人一区二区 | 九九久久免费视频 | 亚洲成人黄色 | 在线中文字幕av | 91麻豆精品一区二区三区 | 国产精品视频播放 | 国产精品免费观看视频 | 综合久久综合久久 | 黄色毛片免费 | 久久久www成人免费无遮挡大片 | 午夜在线影院 |