HTTP
.NET Framework 透過 HttpWebRequest 和 HttpWebResponse 類別充份支援 HTTP 通訊協定,滿足大多數網際網路流量的需求。依預設,每當靜態方法 WebRequest.Create 遇到以 "http" 或 "https" 開頭的 URI 時,就會傳回這些衍生自 WebRequest 和 WebResponse 的類別。在多數情況下,WebRequest 和 WebResponse 類別即足以用來建立要求,但如果您需要存取當做屬性公開的 HTTP 特定功能,可將這些類別轉型為 HttpWebRequest 或 HttpWebResponse。
HttpWebRequest 和 HttpWebResponse 會封裝標準的 HTTP 要求和回應交易,並讓您存取常見的 HTTP 標頭。這些類別還支援大多數的 HTTP 1.1 功能,包括管線建立、區塊切割、驗證、預先驗證、加密、Proxy 支援、伺服器憑證驗證,以及連接管理。自訂的標頭與未經屬性提供的標頭,可儲存在 Headers 屬性中,並透過該屬性存取。
HttpWebRequest 是 WebRequest 使用的預設類別,無需加以註冊即可將 URI 傳遞至 WebRequest.Create 方法。
您可將 AllowAutoRedirect 屬性設定為 true (預設值),讓應用程式自動遵循 HTTP 重新導向作業。應用程式會重新導向要求,而 HttpWebResponse 的 ResponseURI 屬性則會包含實際回應要求的 Web 資源。如果您將 AllowAutoRedirect 設定為 false,應用程式就必須能夠將重新導向當做 HTTP 通訊協定錯誤處理。
應用程式接收 HTTP 通訊協定錯誤的方法是,攔截 Status 設定為 WebExceptionStatus.ProtocolError 的 WebException。Response 屬性包含伺服器傳送的 WebResponse,並指出實際發生的 HTTP 錯誤。