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 類別會使用繼承自本機電腦上的因特網選項的 Proxy 設定。 如果因特網選項中沒有 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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應