【1】問題:
asp.net C# 中HttpRequest 和HttpWebRequest的區(qū)別
HttpRequest 與HttpWebRequest 有什么區(qū)別?
網(wǎng)上中文的帖子很多,但是答案基本是拷貝MSDN的。
這個比較扯淡,看了半天還是沒看出區(qū)別。
兩者都是Http請求。
我們先來看看網(wǎng)上的答案。
【2】網(wǎng)上中文答案:
System.Web.HttpRequest是封裝瀏覽器對服務器的請求的,主要用在ASP.NET中,其中包括瀏覽器請求的網(wǎng)址,查詢字符串數(shù)據(jù)或表單數(shù)據(jù)等等而System.Net.HttpWebRequest則是用來簡化網(wǎng)絡請求的過程,從服務器上獲取文件/結(jié)果的,譬如你可以在代碼中用這個類冒充瀏覽器(設置一個UserAgent)來發(fā)請求,處理回應第一:他們不是父子關(guān)系。 第二:Syste.Net.HttpWebRequest 類是System.Net.WebRequest抽象類的一個子類,它是 .NET Framework 的用于訪問 Internet 數(shù)據(jù)的請求/響應模型的抽象基類。使用該請求/響應模型的應用程序可以用協(xié)議不可知的方式從 Internet 請求數(shù)據(jù)。在這種方式下,應用程序處理 WebRequest 類的實例,而協(xié)議特定的子類則執(zhí)行請求的具體細節(jié)。 System.Net.HttpWebRequest 類和System.Net.FileWebRequest都繼承了WebRequest 1、FileWebRequest 類為使用 file:// 方案來請求本地文件的 URI 實現(xiàn) WebRequest 抽象基類。 2、HttpWebRequest 類對 WebRequest 中定義的屬性和方法提供支持,也對使用戶能夠直接與使用 HTTP 的服務器交互的附加屬性和方法提供支持。 第三:System.Web.HttpRequest 類使 ASP.NET 能夠讀取客戶端在 Web 請求期間發(fā)送的 HTTP 值。HttpRequest 類的方法和屬性通過 Httpapplication、HttpContext、Page 和 UserControl 類的 Request 屬性公開。 所以使用System.Web.HttpRequest類的時候其實都是利用HttpApplication、HttpContext、Page 和 UserControl 類的 Request 屬性。而使用System.Net.HttpWebRequest類時是為了獲得一個Uri資源。自己創(chuàng)建。System.Web 命名空間提供使得可以進行瀏覽器與服務器通信的類和接口。此命名空間包括 HttpRequest 類(用于提供有關(guān)當前 HTTP 請求的廣泛信息)、HttpResponse 類(用于管理對客戶端的 HTTP 輸出)以及 HttpServerUtility 類(用于提供對服務器端實用工具與進程的訪問)。System.Web 還包括用于 Cookie 操作、文件傳輸、異常信息和輸出緩存控制的類。System.Net 命名空間為當前網(wǎng)絡上使用的多種協(xié)議提供了簡單的編程接口。WebRequest 和 WebResponse 類形成了所謂的可插接式協(xié)議的基礎(chǔ),可插接式協(xié)議是網(wǎng)絡服務的一種實現(xiàn),它使您能夠開發(fā)出使用 Internet 資源的應用程序,而不必考慮各種不同協(xié)議的具體細節(jié)。
【3】核心區(qū)別
兩者看起來都是Http請求,只是前者需要在ASP。NET上下文中使用。
實際是不是這樣的?
其實這也只是表象,最根本的區(qū)別在于:
原文地址:http://www.54peixun.com/frankxulei/POST/0136f318384442858d1cce3a0f7ba986
新聞熱點
疑難解答