国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

Visual Basic .Net中實現HTTP協議(二)

2019-11-04 11:45:06
字體:
來源:轉載
供稿:網友

二..Net FrameWork SDK中提供的實現HTTP協議的類:

  在.Net FrameWork SDK中實現HTTP協議的類主要位于命名空間“System.Net”。主要的類有十七種,其名稱及其功能簡介具體如表02所示:

類作用FileWebRequest提供WebRequest類的文件系統實現。FileWebResponse提供WebResponse類的文件系統實現。GlobalPRoxySelection包含所有HTTP請求的全局默認代理實例。HttpVersion定義受HttpWebRequest和HttpWebResponse類支持的HTTP 版本號。 HttpWebRequest提供WebRequest類的HTTP特定的實現。HttpWebResponse提供WebResponse類的HTTP特定的實現。NetworkCredential為基于密碼的身份驗證方案提供憑據。CredentialCache為多個憑據提供存儲。ServicePoint提供HTTP連接的連接治理。WebClient提供向URI標識的資源發送數據和從URI標識的資源接收數據的公共方法。不能繼續此類。WebException通過可插接協議訪問網絡期間出錯時引發的異常。WebHeaderCollection包含與請求或響應關聯的協議標頭。WebPermission控制訪問HTTPInternet資源的權限。WebPermissionAttribute指定權限以訪問Internet資源。WebProxy包含WebRequest類的HTTP代理設置。WebRequest發出對統一資源標識符(URI)的請求。WebResponse提供來自統一資源標識符(URI)的響應。
表02:.Net FrameWork SDK中提供的用以實現HTTP協議的類

  由于.Net FrameWork SDK中提供的用以實現HTTP協議的類實在太多,下面就選擇一些在實現HTTP協議的客戶端程序中經常使用的、以及本文下面內容中所涉及到的的類加以介紹。

  1. WebRequest類:

  WebRequest類是一個基類,它在.Net框架中主要用于訪問Internet數據的請求/響應模型。在創建WebRequest類實例時,請注重下面二個問題:

  (1).一般不采用WebRequest類提供的構造函數,而使用其的Creat方法來創建并初始化WebRequest類實例。

  (2).HttpWebRequest類雖有構造函數。但使用復雜,所以并不提倡。請注重WebRequest類的Creat方法的語法,其語法如下:

public static WebRequest Create (

Uri requestUri

) ;

  當以“http://”或者“https://” 開頭的URI傳遞到上面的requestUri參數中時,Create方法返回其實雖為WebRequest實例,但此實例的實質為HttpWebRequest實例。在下面內容中WebRequest的主要作用就是為創建HttpWebRequest 實例。表03是WebRequest類中的常用屬性和方法及其說明:

屬性說明ConnectionGroupName獲取或設置請求的連接組的名稱。ContentLength獲取或設置所發送的請求數據的內容長度。ContentType獲取或設置所發送的請求數據的內容類型。Credentials獲取或設置用于對Internet資源請求進行身份驗證的網絡憑據。Headers獲取或設置與請求關聯的標頭名稱/值對的集合。Method獲取或設置要在此請求中使用的協議方法。PreAuthenticate指示是否對請求進行預先身份驗證。Proxy獲取或設置用于訪問此Internet資源的網絡代理。RequestUri獲取與請求關聯的Internet資源的Timeout獲取或設置請求超時前的時間長度。
表03:WebRequest類的常用屬性及其說明

  2. HttpWebRequest類:

  HttpWebRequest類主要是實現上面介紹的HTTP會話中的第一、二步驟。當創建完HttpWebRequest實例后,并設定HttpWebRequest實例的“GET”屬性后,HTTP請求信息中的請求行就定義完成了。定義HTTP請求信息中的請求頭,并把請求信息發送出去就需要了解、把握HttpWebRequest類中的方法和屬性。表04是定義HTTP請求頭對應的HttpWebRequest類屬性和方法,表05是HttpWebRequest類常用方法及其說明。

請求頭設置Accept由Accept屬性設置。Connection由Connection屬性和KeepAlive屬性設置。Content-Length由ContentLength屬性設置。Content-Type由ContentType屬性設置。EXPect由Expect屬性設置。Date由系統自動設置為當前日期。Host由系統自動設置為當前主機信息。If-Modified-Since由IfModifiedSince 屬性設置。Range由AddRange方法設置。Referer由Referer屬性設置。Transferencoding 由TransferEncoding屬性或SendChunked屬性設置。 User
Agent 由UserAgent屬性設置。
表04:設定HTTP請求頭對應HttpWebRequest類方法或屬性

方法說明Abort取消對Internet資源的請求。AddRange向請求添加范圍標頭。BeginGetRequestStream開始對用來寫入數據的Stream實例進行異步請求。BeginGetResponse開始對Internet資源的異步請求。EndGetRequestStream結束對用于寫入數據的Stream實例的異步請求。EndGetResponse結束對Internet資源的異步請求。GetRequestStream獲取用于寫入請求數據的Stream實例。GetResponse返回來自Internet資源的響應。
表05:HttpWebRequest類常用屬性及其說明

  其中“BeginGetRequestStream”和“EndGetRequestStream”、“BeginGetResponse”和“EndGetResponse”是二對異步方法,其功能分別相當于“GetRequestStream”和“GetResponse”方法。

  3. HttpWebResponse類:

  HttpWebResponse類主要用以實現HTTP會話中的后面二個步驟。下面介紹的示例中的HttpWebResponse類起的主要作用獲得服務器響應的數據,其中包括應答頭。HttpWebResponse類雖提供了構造函數,但HttpWebResponse類實例的創建并不使用這個構造函數,這一點和HttpWebRequest類非常相似。而是通過HttpWebRequest類的“GetResponse”方法,此方法是當對指定的URI提出請求通過后,遠程Internet資源返回的響應,下面是“GetResponse”方法的語法:

public override WebResponse GetResponse ( ) ;

  可見,假如成功返回,則GetResponse方法返回的是包含來自Internet資源的響應的WebResponse實例。但這個返回的實例實質的類型是HttpWebResponse。在Visual Basic .Net中可以通過類型轉換就可得到程序中所要使用的HttpWebResponse實例,從而為獲取從WWW主機反饋的數據。表06和表07分別是HttpWebResponse類的常用屬性和方法及其說明。

屬性說明CharacterSet獲取響應的字符集。ContentEncoding獲取用于對響應的體進行編碼的方法。ContentLength獲取請求返回的內容的長度。ContentType獲取響應的內容類型。Cookies獲取或設置與此請求關聯的Cookie。Headers獲取與來自服務器的響應關聯的標頭。LastModified獲取最后一次修改響應內容的日期和時間。Method獲取用于返回響應的方法。ProtocolVersion獲取響應中使用的HTTP協議的版本。ResponseUri獲取響應請求的Internet資源的Server獲取發送響應的服務器的名稱。StatusCode獲取響應的狀態。StatusDescription獲取與響應一起返回的狀態說明。
表06:HttpWebResponse類的常用屬性及其說明

方法說明Close關閉響應流。GetResponseHeader獲取與響應一起返回的指定應答頭內容。 GetResponseStream獲取用于讀取來自服務器的響應的數據流。
表07:HttpWebResponse類的常用屬性及其說明

  以上介紹的三個類,是Visual Basic .Net編寫基于HTTP協議網絡應用程序所必須把握的。當然在.Net FrameWork SDK為能夠更好的處理HTTP中各種問題,還提供了許多類,其中包括用以處理身份認證的類,如NetworkCredential和CredentialCache類等。這些類就不具體介紹了。下面就結合若干具體的示例來了解、把握在Visual Basic .Net使用上述類來實現HTTP協議的方法。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平阴县| 余江县| 宜章县| 延庆县| 嘉兴市| 莲花县| 葫芦岛市| 方正县| 错那县| 石屏县| 阳城县| 蚌埠市| 赞皇县| 依安县| 密云县| 蕲春县| 霍邱县| 青岛市| 华亭县| 大港区| 仁布县| 淮滨县| 浦县| 江津市| 巨鹿县| 新民市| 潼关县| 新闻| 庆元县| 巴彦淖尔市| 姚安县| 手游| 库伦旗| 凤城市| 扶风县| 牡丹江市| 蓝田县| 明水县| 酉阳| 城市| 定兴县|