SocketsHttpHandler 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供 .NET Core 2.1 及更新版本中 HttpClient 使用的預設訊息處理常式。
public ref class SocketsHttpHandler sealed : System::Net::Http::HttpMessageHandler
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler
public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type SocketsHttpHandler = class
inherit HttpMessageHandler
type SocketsHttpHandler = class
inherit HttpMessageHandler
Public NotInheritable Class SocketsHttpHandler
Inherits HttpMessageHandler
- 繼承
- 屬性
備註
從 .NET Core 2.1 開始,類別 SocketsHttpHandler
會提供較高層級 HTTP 網路類別所使用的實作,例如 HttpClient。 使用 SocketsHttpHandler
提供許多優點:
與之前的實作相比,能提供顯著的效能提升。
消除平臺相依性,可簡化部署和服務。 例如,
libcurl
不再相依於macOS的 .NET Core 和適用於Linux的 .NET Core。所有 .NET 平台的行為一致。
如果不需要這項變更,而且您位於 .NET Core 2.1-3.1 上,您可以設定應用程式改為使用較舊的 System.Net.Http.HttpClientHandler 類別,以數種方式:
AppContext.SetSwitch呼叫 方法,如下所示:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
藉由在組態檔中定義
System.Net.Http.UseSocketsHttpHandler
參數.netcore.runtimeconfig.json :"runtimeOptions": { "configProperties": { "System.Net.Http.UseSocketsHttpHandler": false } }
藉由定義名為
DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
的環境變數,並將其設定為false
或 0。
從 .NET 5 開始,無法使用這些組態選項。
建構函式
SocketsHttpHandler() |
建立 SocketsHttpHandler 類別的執行個體。 |
屬性
ActivityHeadersPropagator |
取得或設定傳播分散式追蹤和內容時要使用的傳播器。
使用 |
AllowAutoRedirect |
取得或設定值,這個值指出此處理常式是否應該接在重新導向回應之後。 |
AutomaticDecompression |
取得或設定解壓縮方法的類型,此為 HTTP 內容回應的自動解壓縮處理常式所使用。 |
ConnectCallback |
取得或設定用來開啟新連線的自訂回呼。 |
ConnectTimeout |
取得或設定連線建立逾時前等候的時間長度。 |
CookieContainer |
取得或設定受管理的 Cookie 容器物件。 |
Credentials |
取得或設定這個處理常式所用的驗證資訊。 |
DefaultProxyCredentials |
在使用預設 (系統) Proxy 時,取得或設定用來提交到預設 Proxy 伺服器進行驗證的認證。 |
EnableMultipleHttp2Connections |
取得或設定值,這個值表示是否可以建立其他 HTTP/2 連線至相同的伺服器。 |
EnableMultipleHttp3Connections |
提供 .NET Core 2.1 及更新版本中 HttpClient 使用的預設訊息處理常式。 |
Expect100ContinueTimeout |
取得或設定伺服器 HTTP 100 Continue 回應的逾時值。 |
InitialHttp2StreamWindowSize |
定義這個 SocketsHttpHandler所開啟之所有連線的初始 HTTP2 資料流接收視窗大小。 |
IsSupported |
取得值,這個值表示目前平台是否支援處理常式。 |
KeepAlivePingDelay |
取得或設定 keep alive ping 延遲。 |
KeepAlivePingPolicy |
取得或設定 keep alive ping 行為。 |
KeepAlivePingTimeout |
取得或設定 keep alive ping 逾時。 |
MaxAutomaticRedirections |
取得或設定允許的 HTTP 重新導向的數目上限。 |
MaxConnectionsPerServer |
取得或設定單一伺服器允許的同時 TCP 連線數目上限。 |
MaxResponseDrainSize |
取得或設定可從回應中清空的資料的數量上限 (以位元組為單位)。 |
MaxResponseHeadersLength |
取得或設定回應標頭的最大長度,以 KB (1024 位元組) 為單位。 |
MeterFactory |
取得或設定 IMeterFactory ,以建立 實體的SocketsHttpHandler自訂 Meter 。 |
PlaintextStreamFilter |
取得或設定能提供純文字 HTTP 通訊協定資料流存取的自訂回呼。 |
PooledConnectionIdleTimeout |
取得或設定集區中的連線須閒置多久時間,才會視為可重複使用。 |
PooledConnectionLifetime |
取得或設定連線需在集區中多久時間,才會視為可重複使用。 |
PreAuthenticate |
取得或設定值,這個值指出處理常式是否隨著要求傳送授權標頭。 |
Properties |
取得可寫入字典 (,也就是 HttpClient 要求的自定義屬性對應) 。 字典會初始化為空字典。您可以插入及查詢自訂處理常式和特殊處理的索引鍵/值組。 |
Proxy |
在 UseProxy 屬性為 |
RequestHeaderEncodingSelector |
取得或設定回呼,這個回呼會 Encoding 選取 以編碼要求標頭值。 |
ResponseDrainTimeout |
取得或設定要等候資料從回應中清空的時間長度。 |
ResponseHeaderEncodingSelector |
取得或設定回呼,這個回呼會 Encoding 選取 以譯碼響應標頭值。 |
SslOptions |
取得或設定一組用於用戶端 TLS 驗證的選項。 |
UseCookies |
取得或設定值,指出此處理常式是否應該使用 Cookie。 |
UseProxy |
取得或設定值,指出處理常式是否應該使用 Proxy。 |
方法
Dispose() |
釋放 Unmanaged 資源,並處置 HttpMessageHandler 所使用的 Managed 資源。 (繼承來源 HttpMessageHandler) |
Dispose(Boolean) |
釋放 HttpMessageHandler 所使用的 Unmanaged 資源,並選擇性處置 Managed 資源。 (繼承來源 HttpMessageHandler) |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Send(HttpRequestMessage, CancellationToken) |
在衍生類別中遭到覆寫時,使用指定的要求和取消語彙基元來傳送 HTTP 要求。 否則,擲回 NotSupportedException。 (繼承來源 HttpMessageHandler) |
SendAsync(HttpRequestMessage, CancellationToken) |
以非同步作業的方式,傳送 HTTP 要求。 (繼承來源 HttpMessageHandler) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |