Start Debugging

タグ: httpclient

10 件

Refit 16.1はページングループを自動生成: PagedEnumerable、[Paged]、[PageToken]
Refit 16.1.0では、インターフェースのメソッドがPagedEnumerable<TPage, TItem>を返せるようになり、ソースジェネレーターがカーソル、オフセット、レスポンスヘッダー、次へのリンクに対応したページ単位のリクエストループを生成します。宣言方法、列挙の挙動、メンバー名のタイプミスで発生するRF013ビルドエラーについて解説します。
修正: AddStandardResilienceHandler でカスタム DelegatingHandler がリトライのたびに実行されない問題
AddStandardResilienceHandler より前に登録した DelegatingHandler は、リトライごとではなく論理リクエストごとに 1 回しか実行されません。レジリエンスハンドラーの後ろに移動し、リトライが同じ HttpRequestMessage を再送信するため、ハンドラーを冪等にしてください。Microsoft.Extensions.Http.Resilience 10.10.0 と 8.10.0 で計測しています。
ASP.NET Core を参照せずに型付き HttpClient から RFC 9457 の ProblemDetails レスポンスを読み取る方法
BCL に ProblemDetails 型は存在せず、Microsoft.AspNetCore.App への FrameworkReference を追加すると、ランタイムだけのコンテナーでクライアントが起動を拒否します。仕事をこなす 20 行のモデル、problem+json を型付き例外に変える DelegatingHandler、そして今なお多くの回答が繰り返している content-type の神話を扱います。
Aspire が登録する既定のレジリエンスハンドラーを上書きする方法
Aspire の AddServiceDefaults はすべての HttpClient に標準レジリエンスハンドラーを適用します。AddStandardResilienceHandler をもう一度呼んでも置き換えにはならず、2 つ目のハンドラーが積み重なります。実際に上書きする 3 つの方法、どこにも書かれていないオプション名 -standard、そして単に削除しただけで引き継いでしまう無限タイムアウトを解説します。