HttpClientHandler クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
.NET Framework および .NET Core 2.0 以前の HttpClient で使用される既定のメッセージ ハンドラー。
public ref class HttpClientHandler : System::Net::Http::HttpMessageHandler
public class HttpClientHandler : System.Net.Http.HttpMessageHandler
type HttpClientHandler = class
inherit HttpMessageHandler
Public Class HttpClientHandler
Inherits HttpMessageHandler
- 継承
- 派生
例
static async Task Main()
{
// Create an HttpClientHandler object and set to use default credentials
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
// Create an HttpClient object
HttpClient client = new HttpClient(handler);
// Call asynchronous network methods in a try/catch block to handle exceptions
try
{
HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
// Need to call dispose on the HttpClient and HttpClientHandler objects
// when done using them, so the app doesn't leak resources
handler.Dispose();
client.Dispose();
}
上記のコード例では、エントリ ポイントを async Task Main()
使用しています。 この機能には C# 7.1 以降が必要です。
注釈
そこから派生したクラスとクラスを使用すると、開発者は HttpClientHandler
プロキシから認証まで、さまざまなオプションを構成できます。
.NET Core の HttpClientHandler
.NET Core 2.1 以降では、 クラスの HttpClientHandler
実装は、 クラスで System.Net.Http.SocketsHttpHandler 使用されるクロスプラットフォーム HTTP プロトコル スタックに基づいて変更されました。 .NET Core 2.1 より前の HttpClientHandler
クラスでは、古い HTTP プロトコル スタック (WinHttpHandler Windows の場合は を使用し CurlHandler
、Linux では Linux 上の Linux のネイティブ libcurl
コンポーネントの上に実装された内部クラス) を使用しました。
.NET Core 2.1 から 3.1 の場合のみ、次の 3 つの方法のいずれかで古い HTTP プロトコル スタックを使用するようにアプリを構成できます。
メソッドを呼び出します 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
の環境変数を定義し、または 0 にfalse
設定します。
これらの構成オプションは、.NET 5 以降では使用できません。
コンストラクター
HttpClientHandler() |
HttpClientHandler クラスのインスタンスを作成します。 |
プロパティ
AllowAutoRedirect |
ハンドラーがリダイレクト応答に従うかどうかを示す値を取得または設定します。 |
AutomaticDecompression |
HTTP コンテンツ応答を自動展開するためにハンドラーによって使用される展開メソッドの種類を取得または設定します。 |
CheckCertificateRevocationList |
証明書が証明機関の失効リストに対して照合されるかどうかを示す値を取得または設定します。 |
ClientCertificateOptions |
証明書を自動的に証明書ストアから取得するか、または呼び出し元が特定のクライアント証明書を渡すことを許可するかを示す値を、取得または設定します。 |
ClientCertificates |
サーバーへの要求に関連付けられているセキュリティ証明書のコレクションを取得します。 |
CookieContainer |
サーバーの Cookie を保存するためにハンドラーによって使用されるコンテナーを取得または設定します。 |
Credentials |
このハンドラーで使用する認証情報を取得または設定します。 |
DangerousAcceptAnyServerCertificateValidator |
常に |
DefaultProxyCredentials |
既定の (システム) プロキシが使用されている場合、認証のために既定のプロキシ サーバーに送信するための資格情報を取得または設定します。 既定のプロキシは、UseProxy が |
MaxAutomaticRedirections |
ハンドラーがフォローするリダイレクトの最大数を取得または設定します。 |
MaxConnectionsPerServer |
ph x="1" /> オブジェクトを使用して要求を行うときに許可される (サーバー エンドポイントあたりの) コンカレント接続の最大数を取得または設定します。 サーバー エンドポイントあたりの制限に注意してください。たとえば、値 256 は http://www.adatum.com/ に対して 256 のコンカレント接続数を許可し、http://www.adventure-works.com/ に対してさらに 256 のコンカレント接続数を許可します。 |
MaxRequestContentBufferSize |
ハンドラーによって使用される最大要求コンテンツ バッファー サイズを取得または設定します。 |
MaxResponseHeadersLength |
応答ヘッダーの最大長 (KB 単位、1 KB = 1024 バイト) を取得または設定します。 たとえば、値が 64 の場合、応答ヘッダーの最大長に 65536 バイトが許可されます。 |
PreAuthenticate |
ハンドラーが要求と共に認証ヘッダーを送信するかどうかを示す値を取得または設定します。 |
Properties |
HttpClient 要求のカスタム プロパティの書き込み可能なディクショナリ (マップ) を取得します。 ディクショナリが初期化されて空になると、カスタム ハンドラーと特殊な処理のキーと値のペアを挿入してクエリを実行できます。 |
Proxy |
ハンドラーで使用するプロキシ情報を取得または設定します。 |
ServerCertificateCustomValidationCallback |
サーバー証明書を検証するコールバック メソッドを取得または設定します。 |
SslProtocols |
HttpClientHandler オブジェクトによって管理される HttpClient オブジェクトが使用する TLS/SSL プロトコルを取得または設定します。 |
SupportsAutomaticDecompression |
ハンドラーが自動応答のコンテンツ展開をサポートするかどうかを示す値を取得します。 |
SupportsProxy |
ハンドルがプロキシ設定をサポートしているかどうかを示す値を取得します。 |
SupportsRedirectConfiguration |
ハンドラーが AllowAutoRedirect および MaxAutomaticRedirections プロパティの構成設定をサポートするかどうかを示す値を取得します。 |
UseCookies |
ハンドラーが プロパティを使用 CookieContainer してサーバー Cookie を格納し、要求の送信時にこれらの Cookie を使用するかどうかを示す値を取得または設定します。 |
UseDefaultCredentials |
既定の資格情報がハンドラーによる要求と共に送信されるかどうかを制御する値を取得または設定します。 |
UseProxy |
ハンドラーが要求のプロキシを使用するかどうかを示す値を取得または設定します。 |
メソッド
Dispose() |
HttpMessageHandler が使用しているアンマネージド リソースを解放し、マネージド リソースを破棄します。 (継承元 HttpMessageHandler) |
Dispose(Boolean) |
HttpClientHandler が使用しているアンマネージド リソースを解放します。オプションとして、マネージド リソースを破棄することもできます。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
Send(HttpRequestMessage, CancellationToken) |
で提供される情報に基づいて のインスタンス HttpResponseMessage を作成します HttpRequestMessage。 |
Send(HttpRequestMessage, CancellationToken) |
派生クラスでオーバーライドされた場合は、指定した要求とキャンセル トークンを使用して HTTP 要求を送信します。 それ以外の場合は、NotSupportedException をスローします。 (継承元 HttpMessageHandler) |
SendAsync(HttpRequestMessage, CancellationToken) |
で指定されたHttpRequestMessage情報に基づいて、 のインスタンスHttpResponseMessageをブロックしない操作として作成します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |