前提・実現したいこと
C#のHttpClientを使用して、予め指定したプロキシを経由して、定期的に同じHTTPのリクエストを送りたいと考えています。
発生している問題・エラーメッセージ
複数回、同じリクエストを投げる場合、
以下のページでは、リクエストごとにHttpClientをインスタンス化するのはリソースを食いつぶすので、
static化をせよと記載されています。
https://docs.microsoft.com/ja-jp/dotnet/api/system.net.http.httpclient?view=netframework-4.7.2
しかしながら、経由したいプロキシの候補が複数あるため、static化の記述方法が分からなくて困っています。
予め設定ファイルにプロキシのリストを記載しておき、それを読み込み、それぞれごとに定期的なリクエストを投げることを想定していますが、
プロキシのリストの個数が設定ファイルごとに変わるため、static文が上手く記述できないです。
該当のソースコード
以下のコードは一つのHttpClientのインスタンスを作成しています。(上記のマイクロソフトのサイトより)
C#
1public class GoodController : ApiController 2{ 3 // OK 4 private static readonly HttpClient HttpClient; 5 6 static GoodController() 7 { 8 HttpClient = new HttpClient(); 9 } 10}
このstatic文を動的に変更するプロキシの個数分作れるようにしたいです。
試したこと
static化をせずに通常のインスタンス化を初回行い、2回目以降はそれを使いまわそうとしましたが、
その場合、InvalidOperationExceptionが表示され、すでに送信済みですとなってしまいます。
回答1件
あなたの回答
tips
プレビュー