HttpWebResponse類的作用用於在客戶端獲取返回的響應的信息,還記得HttpResponse類嗎?你是否在寫B/S程序的時候,經常用到Response.Write()呢?
HttpResponse用於在服務器端設置服務端的響應信息,而HttpWebResponse類用於客戶端獲取服務器端返回的響應信息。這個類還是比較簡單,還是可以照着以前的MSDN全部寫一遍。
一、屬性
CharacterSet 獲取響應的字符集。
ContentEncoding 獲取用於對響應體進行編碼的方法。
ContentLength 獲取請求返回的內容的長度。 (重寫 WebResponse..::.ContentLength。)
ContentType 獲取響應的內容類型。 (重寫 WebResponse..::.ContentType。)
Cookies 獲取或設置與此響應關聯的 Cookie。
Headers 獲取來自服務器的與此響應關聯的標頭。 (重寫 WebResponse..::.Headers。)
IsFromCache 獲取一個 Boolean 值,該值指示此響應是否為從緩存中獲取的。 (繼承自 WebResponse。)
IsMutuallyAuthenticated 獲取一個 Boolean 值,該值指示客戶端和服務器是否都已經過身份驗證。 (重寫 WebResponse..::.IsMutuallyAuthenticated。)
LastModified 獲取最后一次修改響應內容的日期和時間。
Method 獲取用於返回響應的方法。
ProtocolVersion 獲取響應中使用的 HTTP 協議的版本。
ResponseUri 獲取響應請求的 Internet 資源的 URI。 (重寫 WebResponse..::.ResponseUri。)
Server 獲取發送響應的服務器的名稱。
StatusCode 獲取響應的狀態。
StatusDescription 獲取與響應一起返回的狀態說明。
static void Main(string[] args) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com"); //創建一個請求示例 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(response.CharacterSet); //輸出 utf-8 Console.WriteLine(response.ContentEncoding); //空 Console.WriteLine(response.ContentLength); //輸出 10310 Console.WriteLine(response.ContentType); //輸出 text/html charset=utf-8 CookieCollection cc = response.Cookies; Console.WriteLine(cc.Count); //輸出 0 WebHeaderCollection whc = response.Headers; Console.WriteLine(whc.Count); //輸出 9 foreach (string h in whc.AllKeys) { Console.WriteLine(h.ToString() + " " + whc[h].ToString()); //輸出所有的響應頭信息 } Console.WriteLine(response.IsFromCache); //輸出 false 該值指示響應是否從緩存獲取的 Console.WriteLine(response.IsMutuallyAuthenticated); //輸出 false 客戶端和服務器端都已通過身份認證 Console.WriteLine(response.LastModified); //輸出 2013-04-06 21:03:06 最后一次修改響應的時間和日期 Console.WriteLine(response.Method); //輸出 Get 返回響應的方法 Console.WriteLine(response.ProtocolVersion); //輸出 1.1 響應的HTTP協議的版本 Console.WriteLine(response.ResponseUri); //輸出 http://www.baidu.com 響應請求的Interner資源的URI Console.WriteLine(response.Server); //輸出 BWS/1.0 發送響應的服務器的名稱 Console.WriteLine(response.StatusCode); //輸出 OK 獲取響應的狀態,這個不是狀態碼,而是狀態描述,為什么不是200呢,奇怪啊,測試了好幾個網站都是OK,而不是200 Console.WriteLine(response.StatusDescription); //輸出 OK 這個是狀態描述, Console.ReadKey(); }
二、方法
Close 關閉響應流。 (重寫 WebResponse..::.Close()()()。)
CreateObjRef 創建一個對象,該對象包含生成用於與遠程對象進行通信的代理所需的全部相關信息。 (繼承自 MarshalByRefObject。)
Dispose 釋放由 HttpWebResponse 使用的非托管資源,並可根據需要釋放托管資源。
GetLifetimeService 檢索控制此實例的生存期策略的當前生存期服務對象。 (繼承自 MarshalByRefObject。)
GetObjectData 基礎結構。 使用將目標對象序列化所需的數據填充 SerializationInfo。 (重寫 WebResponse..::.GetObjectData(SerializationInfo, StreamingContext)。)
GetResponseHeader 獲取與響應一起返回的標頭的內容。
GetResponseStream 獲取流,該流用於讀取來自服務器的響應的體。 (重寫 WebResponse..::.GetResponseStream()()()。)
InitializeLifetimeService 獲取控制此實例的生存期策略的生存期服務對象。 (繼承自 MarshalByRefObject。)
class Program { static void Main(string[] args) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com"); //創建一個請求示例 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(response.GetResponseHeader("Content-Type")); //輸出 text/html;charset=utf-8 Stream stream = response.GetResponseStream(); //獲取響應的字符串流 StreamReader sr = new StreamReader(stream); //創建一個stream讀取流 string html = sr.ReadToEnd(); //從頭讀到尾,放到字符串html李米 Console.WriteLine(html); //輸出首頁HTML代碼 Console.ReadKey(); } }
基本就這么多東西了。