HttpWebRequest 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供 WebRequest 類別的 HTTP 特定實作。
public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
inherit WebRequest
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
- 繼承
- 繼承
- 屬性
- 實作
範例
下列程式代碼範例會 HttpWebRequest 建立 URI http://www.contoso.com/
的 。
HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
Dim myReq As HttpWebRequest = _
WebRequest.Create("http://www.contoso.com/")
備註
重要
我們不建議您 HttpWebRequest
用於新的開發。 請改用 類別 System.Net.Http.HttpClient 。
類別 HttpWebRequest 支援 中 WebRequest 定義的屬性和方法,以及可讓使用者使用 HTTP 直接與伺服器互動的其他屬性和方法。
請勿使用 建構函 HttpWebRequest 式。 WebRequest.Create使用方法來初始化新的 HttpWebRequest 物件。 如果統一資源標識碼 (URI 的配置) 為 http://
或 https://
, Create 則會傳 HttpWebRequest 回 物件。
方法 GetResponse 會對 屬性中指定的 RequestUri 資源發出同步要求,並傳回 HttpWebResponse 包含回應物件的 。 您可以使用 所 GetResponseStream傳回的數據流來接收回應數據。 如果回應物件或回應數據流已關閉,則會遺失剩餘的數據。 如果下列條件保留,則會清空剩餘的數據,而且在關閉回應對象或數據流時,套接字將會重新用於後續要求:這是保持運作或管線要求,只需要接收少量的數據,或剩餘的數據會以小時間間隔接收。 如果未超過上述條件保留或清空時間,將會關閉套接字。 針對保持連線或管線連線,強烈建議應用程式讀取串流,直到 EOF 為止。 這可確保套接字將重新用於後續要求,進而產生更佳的效能和較少使用的資源。
當您想要將數據傳送至資源時, GetRequestStream 方法會 Stream 傳回物件以用來傳送數據。 BeginGetRequestStream和 EndGetRequestStream 方法會提供傳送數據流的異步存取。
若要使用 進行 HttpWebRequest客戶端驗證,用戶端憑證必須安裝在目前使用者的 [我的證書存儲] 中。
類別 HttpWebRequest 會在 WebException 存取資源時發生錯誤時擲回 。 WebException.Status屬性包含值WebExceptionStatus,指出錯誤的來源。 當 為 WebExceptionStatus.ProtocolError時WebException.Status,Response屬性會HttpWebResponse包含從資源接收的 。
HttpWebRequest 會公開傳送至因特網資源的通用 HTTP 標頭值做為屬性、依方法設定,或由系統設定;下表包含完整清單。 您可以將屬性中的其他 Headers 標頭設定為名稱/值組。 請注意,伺服器和快取可能會在要求期間變更或新增標頭。
下表列出由屬性或方法或系統設定的 HTTP 標頭。
標頭 | 設定者 |
---|---|
Accept |
由 Accept 屬性設定。 |
Connection |
由 Connection 屬性、 KeepAlive 屬性設定。 |
Content-Length |
由 ContentLength 屬性設定。 |
Content-Type |
由 ContentType 屬性設定。 |
Expect |
由 Expect 屬性設定。 |
Date |
由系統設定為目前日期。 |
Host |
由系統設定為目前的主機資訊。 |
If-Modified-Since |
由 IfModifiedSince 屬性設定。 |
Range |
由 AddRange 方法設定。 |
Referer |
由 Referer 屬性設定。 |
Transfer-Encoding |
由 TransferEncoding 屬性設定 (SendChunked 屬性必須 true ) 。 |
User-Agent |
由 UserAgent 屬性設定。 |
注意
HttpWebRequest 會自動註冊。 您不需要先呼叫 RegisterPrefix 方法來註冊 System.Net.HttpWebRequest ,再使用開頭為 http://
或 https://
的 URI。
本機電腦或應用程式組態檔可能會指定要使用的預設 Proxy。 Proxy如果指定 屬性,則 屬性中的 Proxy Proxy 設定會覆寫本機計算機或應用程式組態檔,而 HttpWebRequest 實例會使用指定的 Proxy 設定。 如果在組態檔中未指定任何 Proxy,而且 Proxy 未指定 屬性,則 HttpWebRequest 類別會使用繼承自本機電腦上的 Internet Explorer 的 Proxy 設定。 如果 Internet Explorer 中沒有 Proxy 設定,則會將要求直接傳送至伺服器。
類別會 HttpWebRequest 剖析 Proxy 略過清單,其通配符繼承自 Internet Explorer 的方式與略過清單不同,由 Internet Explorer 直接剖析。 例如,類別 HttpWebRequest 會剖析 Internet Explorer 中 “nt*” 的略過清單,作為 “nt.$” 的正則表達式。 這與 Internet Explorer 的原生行為不同。 因此,“http://intxxxxx
” 的 URL 會使用 HttpWebRequest 類別略過 Proxy,但不會使用 Internet Explorer 略過 Proxy。
注意
架構會在建立 SSL 工作階段時進行快取,並盡可能嘗試重複使用新要求的快取工作階段。 嘗試重複使用 SSL 會話時,如果有一個) ,則 Framework 會使用 (的第一 ClientCertificates 個專案,或在 空白時嘗試重複使用匿名會話 ClientCertificates 。
注意
基於安全性考慮,預設會停用 Cookie。 如果您想要使用 Cookie,請使用 CookieContainer 屬性來啟用 Cookie。
.NET Framework 4.6 包含新的安全性功能,可封鎖不安全的加密和連線哈希演算法。 透過 HTTPClient、HttpWebRequest、FTPClient、SmtpClient、SslStream 等 API 使用 TLS/SSL 的應用程式,預設會取得更安全的行為 .NET Framework 4.6。
開發人員可能會想要退出退出此行為,以維持其現有 SSL3 服務或 TLS w/ RC4 服務的互操作性。 本文 說明如何修改程序代碼,以便停用新的行為。
建構函式
HttpWebRequest() |
已淘汰.
已淘汰.
初始化 HttpWebRequest 類別的新執行個體。 此建構函式已經過時。 |
HttpWebRequest(SerializationInfo, StreamingContext) |
已淘汰.
已淘汰.
已淘汰.
已淘汰.
初始化 HttpWebRequest 類別的新執行個體,這個執行個體是來自 SerializationInfo 和 StreamingContext 類別的指定執行個體。 此建構函式已經過時。 |
屬性
Accept |
取得或設定 |
Address |
取得實際回應要求的網際網路資源統一資源識別元 (URI)。 |
AllowAutoRedirect |
取得或設定值,這個值指出要求是否應該緊接在重新導向回應之後。 |
AllowReadStreamBuffering |
取得或設定值,這個值表示是否要緩衝處理從網際網路資源接收的資料。 |
AllowWriteStreamBuffering |
取得或設定值,指出是否要緩衝傳送至網際網路資源的資料。 |
AuthenticationLevel |
取得或設定值,指出用於這個要求的驗證和模擬等級。 (繼承來源 WebRequest) |
AutomaticDecompression |
取得或設定使用的解壓縮類型。 |
CachePolicy |
取得或設定這個要求的快取原則。 (繼承來源 WebRequest) |
ClientCertificates |
取得或設定與這個要求關聯的安全憑證集合。 |
Connection |
取得或設定 |
ConnectionGroupName |
取得或設定要求的連線群組名稱。 |
ConnectionGroupName |
在子代類別中覆寫時,取得或設定要求的連接群組名稱。 (繼承來源 WebRequest) |
ContentLength |
取得或設定 |
ContentLength |
在子代類別中覆寫時,取得或設定正在傳送要求資料的內容長度。 (繼承來源 WebRequest) |
ContentType |
取得或設定 |
ContinueDelegate |
取得或設定從網際網路資源接收 HTTP 100-continue 回應時所呼叫的委派 (Delegate) 方法。 |
ContinueTimeout |
取得或設定要在收到伺服器的 100-Continue 以前等候的逾時 (以毫秒為單位)。 |
CookieContainer |
取得或設定與要求相關的 Cookie。 |
CreatorInstance |
已淘汰.
在子代類別中覆寫時,取得衍生自 IWebRequestCreate 類別的 Factory 物件,用來建立執行個體化的 WebRequest 以對指定的 URI 提出要求。 (繼承來源 WebRequest) |
Credentials |
取得或設定要求的驗證資訊。 |
Date |
取得或設定要用於 HTTP 要求中的 |
DefaultCachePolicy |
取得或設定這個要求的預設快取原則。 |
DefaultMaximumErrorResponseLength |
取得或設定 HTTP 錯誤回應的預設最大長度。 |
DefaultMaximumResponseHeadersLength |
取得或設定 MaximumResponseHeadersLength 屬性的預設值。 |
Expect |
取得或設定 |
HaveResponse |
取得值,指出是否已經接收到來自網際網路資源的回應。 |
Headers |
指定組成 HTTP 標頭的名稱/值組集合。 |
Host |
取得或設定 Host 標頭值,以用在獨立於要求 URI 的 HTTP 要求中。 |
IfModifiedSince |
取得或設定 |
ImpersonationLevel |
取得或設定目前要求的模擬等級。 (繼承來源 WebRequest) |
KeepAlive |
取得或設定值,指出是否要與網際網路資源建立持續連線。 |
MaximumAutomaticRedirections |
取得或設定要求追蹤的最大重新導向數目。 |
MaximumResponseHeadersLength |
取得或設定回應標頭的最大允許長度。 |
MediaType |
取得或設定要求的媒體類型。 |
Method |
取得或設定要求的方法。 |
Pipelined |
取得或設定值,指出是否將要求導送至網際網路資源。 |
PreAuthenticate |
取得或設定值,指出是否隨著要求傳送授權標頭。 |
PreAuthenticate |
在子代類別中覆寫時,指出是否要預先驗證要求。 (繼承來源 WebRequest) |
ProtocolVersion |
取得或設定要求所使用的 HTTP 版本。 |
Proxy |
取得或設定要求的 Proxy 資訊。 |
Proxy |
在子代類別中覆寫時,取得或設定要用來存取這個網際網路資源的網路 Proxy。 (繼承來源 WebRequest) |
ReadWriteTimeout |
取得或設定寫入或讀取資料流時的逾時 (以毫秒為單位)。 |
Referer |
取得或設定 |
RequestUri |
取得要求的原始統一資源識別元 (URI)。 |
SendChunked |
取得或設定值,指出是否要分區段傳送資料至網際網路資源。 |
ServerCertificateValidationCallback |
取得或設定用來驗證伺服器憑證的回呼函式。 |
ServicePoint |
取得要為要求使用的服務點。 |
SupportsCookieContainer |
取得值,指出要求是否提供對 CookieContainer 的支援。 |
Timeout |
取得或設定 GetResponse() 和 GetRequestStream() 方法的逾時值 (以毫秒為單位)。 |
Timeout |
取得或設定要求逾時之前的時間長度 (以毫秒為單位)。 (繼承來源 WebRequest) |
TransferEncoding |
取得或設定 |
UnsafeAuthenticatedConnectionSharing |
取得或設定值,指出是否允許高速 NTLM 驗證連線共用。 |
UseDefaultCredentials |
取得或設定 Boolean 值,控制是否隨著要求傳送預設認證。 |
UseDefaultCredentials |
在子代類別中覆寫時,取得或設定 Boolean 值,控制 DefaultCredentials 是否隨著要求傳送。 (繼承來源 WebRequest) |
UserAgent |
取得或設定 |
方法
明確介面實作
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
已淘汰.
已淘汰.
已淘汰.
將序列化目標物件所需的資料填入 SerializationInfo。 |
擴充方法
GetRequestMetadata(HttpWebRequest) |
取得要用於遙測用途之傳出要求的元數據。 |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
設定要用於遙測用途之傳出要求的元數據。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應