Toolbelt.blazor.httpclientinterceptor: サーバーからのメッセージを見る

作成日 2020年01月22日  ·  7コメント  ·  ソース: jsakamoto/Toolbelt.Blazor.HttpClientInterceptor

サーバーからの応答メッセージを確認することはできますか?その場合、例を投稿できますか?

これを使用して、「エラー」トーストをその場で配置しようとしているので、リクエストがエラーを返すタイミングを確認できる必要があります。

ありがとう!

全てのコメント7件

1つの解決策は、SendAsyncメソッドを次のように変更することです。

protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            HttpResponseMessage response = null;
            try
            {
                BeforeSend?.Invoke(this, request);
                response = await (SendAsyncMethod.Invoke(Handler, new object[] { request, cancellationToken }) as Task<HttpResponseMessage>);
                return response;
            }
            finally
            {
                AfterSend?.Invoke(this, response);
            }
        }

とイベントハンドラーに

/// <summary>
/// Occurs before a HTTP request sending.
/// </summary>
public event EventHandler<HttpRequestMessage> BeforeSend;

/// <summary>
/// Occurs after received a response of a HTTP request. (include it wasn't succeeded.)
/// </summary>
public event EventHandler<HttpResponseMessage> AfterSend;

私はこの提案を受けました。 そもそもSortaはそうあるべきだと思います。 EventArgs eの有用性を理解していない限り、このインターセプターを大幅に有用にします

素晴らしいフィードバックをありがとう! 👍

@khamangが提案した新機能を含む「BlazorWebAssembly(クライアント側)HttpClientインターセプター」v.6.1.0を公開しました。

参照: https ://github.com/jsakamoto/Toolbelt.Blazor.HttpClientInterceptor/#the -arguments-of-event-handler

だからこれは修正する必要がありますか? AfterSendの応答コンテンツにアクセスしたい場合でも、エラーが発生します。
それは、http.PostAsyncがロックされているために本体にアクセスできないようにするサービスで述べています

@TheSwerikご報告ありがとうございます。

だからこれは修正する必要がありますか? それでもエラーが発生します...

このスレッドはエラーレポートではなく、新機能の提案スレッドです。
あなたが今報告した問題があるとは知りませんでした。

後でその問題を再現しようとします。再現できれば修正しようとします。

ああ、これはここに当てはまると思いました。新しい、より詳細な問題を作成します

@TheSwerikありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価