HttpClient
とHttpRequestMessage
を使います。
string uri = @"https://example.com/"; HttpClient client = new HttpClient(); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, uri); request.Headers.Add("HeaderName", "HeaderValue"); HttpResponseMessage response = await client.SendAsync(request);
なお、HttpClient
はusing
で囲まず、使い回すのが正解のようです。
公式ドキュメントでも下記のように説明されています。
HttpClient は、1 回インスタンス化され、アプリケーションの有効期間を通じて再利用されることを目的としています。 HttpClient は、接続をプールし、複数の要求で接続を再利用するように設計されています。 要求ごとに HttpClient クラスをインスタンス化すると、負荷の高い状態で使用できるソケットの数が使い果たされます。 この枯渇により、エラーが発生 SocketException します。