次の方法で共有


SocketsHttpHandler クラス

定義

.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
継承
SocketsHttpHandler
属性

注釈

.NET Core 2.1 以降では、 SocketsHttpHandler クラスは、 などの HttpClient上位レベルの HTTP ネットワーク クラスで使用される実装を提供します。 の 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)
    
  • .netcore.runtimeconfig.json構成ファイルでスイッチを定義System.Net.Http.UseSocketsHttpHandlerします。

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • という名前 DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER の環境変数を定義し、それを または 0 に false 設定します。

これらの構成オプションは、.NET 5 以降では使用できません。

コンストラクター

SocketsHttpHandler()

SocketsHttpHandler クラスのインスタンスを作成します。

プロパティ

ActivityHeadersPropagator

分散トレースとコンテキストを伝達するときに使用する伝達子を取得または設定します。 伝達を無効にするには、 を使用 null します。

AllowAutoRedirect

ハンドラーがリダイレクト応答に従うかどうかを示す値を取得または設定します。

AutomaticDecompression

HTTP コンテンツ応答を自動展開するためにハンドラーによって使用される展開メソッドの種類を取得または設定します。

ConnectCallback

新しい接続を開くために使用するカスタム コールバックを取得または設定します。

ConnectTimeout

接続の確立がタイムアウトするまで待機する期間を取得または設定します。

CookieContainer

マネージド クッキー コンテナー オブジェクトを取得または設定します。

Credentials

このハンドラーで使用する認証情報を取得または設定します。

DefaultProxyCredentials

既定の (システム) プロキシが使用されている場合、認証のために既定のプロキシ サーバーに送信するための使用されている資格情報を取得または設定します。

EnableMultipleHttp2Connections

同じサーバーに対して追加の HTTP/2 接続を確立できるかどうかを示す値を取得または設定します。

EnableMultipleHttp3Connections

.NET Core 2.1 以降の HttpClient で使用される既定のメッセージ ハンドラーを提供します。

Expect100ContinueTimeout

サーバーの HTTP 100 Continue 応答のタイムアウト値を取得または設定します。

InitialHttp2StreamWindowSize

この SocketsHttpHandlerによって開かれるすべての接続の初期 HTTP2 ストリーム受信ウィンドウ サイズを定義します。

IsSupported

ハンドラーが現在のプラットフォームでサポートされているかどうかを示す値を取得します。

KeepAlivePingDelay

キープ アライブ ping の遅延を取得または設定します。

KeepAlivePingPolicy

キープ アライブ ping の動作を取得または設定します。

KeepAlivePingTimeout

キープ アライブ ping のタイムアウトを取得または設定します。

MaxAutomaticRedirections

許可される HTTP リダイレクトの最大数を取得または設定します。

MaxConnectionsPerServer

1 つのサーバーに対して許可されている同時 TCP 接続の最大数を取得または設定します。

MaxResponseDrainSize

応答からドレインできる最大データ量 (バイト単位) を取得または設定します。

MaxResponseHeadersLength

応答ヘッダーの最大長 (KB 単位、1 KB = 1024 バイト) を取得または設定します。

MeterFactory

インスタンスのIMeterFactoryカスタムMeterSocketsHttpHandlerを作成する を取得または設定します。

PlaintextStreamFilter

プレーンテキスト HTTP プロトコル ストリームへのアクセスを提供するカスタム コールバックを取得または設定します。

PooledConnectionIdleTimeout

再利用可能と見なされるプールで接続がアイドル状態でいられる時間を取得または設定します。

PooledConnectionLifetime

再利用可能と見なされるために接続がプール内にいられる時間を取得または設定します。

PreAuthenticate

ハンドラーが要求と共に認証ヘッダーを送信するかどうかを示す値を取得または設定します。

Properties

HttpClient 要求のカスタム プロパティの書き込み可能なディクショナリ (つまり、マップ) を取得します。 ディクショナリが初期化されて空になると、カスタム ハンドラーと特殊な処理のキーと値のペアを挿入してクエリを実行できます。

Proxy

UseProxy プロパティが true の場合に、カスタム プロキシを取得または設定します。

RequestHeaderEncodingSelector

要求ヘッダー値をエンコードする を Encoding 選択するコールバックを取得または設定します。

ResponseDrainTimeout

データが応答からドレインされるのを待機する期間を取得または設定します。

ResponseHeaderEncodingSelector

応答ヘッダー値をデコードする を Encoding 選択するコールバックを取得または設定します。

SslOptions

クライアント TLS 認証に使用するオプションのセットを取得または設定します。

UseCookies

ハンドラーで Cookie を使用するかどうかを示す値を取得または設定します。

UseProxy

ハンドラーでプロキシを使用するかどうかを示す値を取得または設定します。

メソッド

Dispose()

HttpMessageHandler が使用しているアンマネージド リソースを解放し、マネージド リソースを破棄します。

(継承元 HttpMessageHandler)
Dispose(Boolean)

HttpMessageHandler が使用しているアンマネージド リソースを解放します。オプションとして、マネージド リソースを破棄することもできます。

(継承元 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)

適用対象