Toolbelt.blazor.httpclientinterceptor: Sehen Sie sich die Nachricht an, die vom Server kommt

Erstellt am 22. Jan. 2020  ·  7Kommentare  ·  Quelle: jsakamoto/Toolbelt.Blazor.HttpClientInterceptor

Ist es möglich, die vom Server kommende Antwortnachricht zu sehen, und wenn ja, könnten Sie ein Beispiel posten?

Ich versuche, dies zu verwenden, um an Ort und Stelle zu sein, wo ich den "Fehler" -Toast platziere, damit ich sehen kann, wann die Anforderung den Fehler zurückgibt.

Danke!

Alle 7 Kommentare

Eine Lösung besteht darin, die SendAsync-Methode wie folgt zu ändern:

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);
            }
        }

und die Eventhandler zu

/// <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;

Diesen Vorschlag habe ich übernommen. Sorta scheint, dass es in erster Linie so sein sollte. Macht diesen Abfangjäger wesentlich nützlicher, es sei denn, ich verstehe die Nützlichkeit von EventArgs e nicht

Danke für nettes Feedback! 👍

Ich habe "Blazor WebAssembly (clientseitig) HttpClient Interceptor" v.6.1.0 veröffentlicht, das die von @khamang vorgeschlagene neue Funktion enthält!

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

Also sollte das behoben werden? Ich erhalte immer noch eine Fehlermeldung, wenn ich auf den Antwortinhalt in AfterSend zugreifen möchte.
Es heißt im Dienst, dass http.PostAsync nicht auf den Körper zugreifen kann, weil es gesperrt ist

@TheSwerik Vielen Dank für Ihre Berichterstattung.

Also sollte das behoben werden? Ich bekomme immer noch einen Fehler ...

Dieser Thread ist kein Fehlerbericht, dies ist ein Vorschlagsthread für neue Funktionen.
Ich wusste nicht, dass es ein Problem gibt, das Sie jetzt gemeldet haben.

Ich werde versuchen, dieses Problem später zu reproduzieren, und ich werde versuchen, es zu beheben, wenn ich es reproduzieren könnte.

Oh, ich dachte, das passt hierher, ich werde ein neues und ausführlicheres Thema erstellen

@TheSwerik Danke!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen