0

この投稿で Xamgirl によって概説されている方法論を実装しました。

https://xamgirl.com/using-restful-web-service-xamarin-forms-using-refit-part-3/

コードを見ると、彼女は MakeUpApi と RedditApi のために 2 つの ApiServices をインスタンス化しているため、2 つの HttpClient インスタンスをインスタンス化しています。

HttpClient は単一のインスタンスとして使用するように設計されているため、リクエストごとに Fusillade の優先度が異なる可能性があることを念頭に置いて、これを行う方法を誰かが知っているかどうか疑問に思っています。

前もって感謝します

4

1 に答える 1

3

HttpClient は、一度インスタンス化され、アプリケーションの存続期間を通じて再利用されることを意図しています。リクエストごとに HttpClient クラスをインスタンス化すると、負荷が高い場合に使用可能なソケットの数が使い果たされます。この問題により、SocketException エラーが発生します。この問題を解決するために考えられるアプローチは、HttpClient オブジェクトをシングルトンまたは静的として作成することに基づいています。

ただし、HttpClient をシングルトンまたは静的オブジェクトとして使用する場合に発生する可能性のある別の問題があります。この場合、 .NET Core GitHub リポジトリのこの問題で説明されているように、シングルトンまたは静的 HttpClient は DNS の変更を考慮しません。

上記の問題に対処し、HttpClient インスタンスの管理を容易にするために、.NET Core 2.1 では新しいHttpClientFactoryが導入されました。これは、Polly を統合することで回復力のある HTTP 呼び出しを実装するためにも使用できます。

より詳細な情報、見てください:

https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests

于 2019-06-05T05:33:43.453 に答える