Ich verwende SendAsync
mit HttpCompletionOption.ResponseHeadersRead
, um die Header zuerst zu bekommen. Als nächstes überprüfe ich die Content-Type
und Content-Length
, um sicherzustellen, dass die Antwort Markup ist und die Größe anständig ist. Ich verwende CancellationTokenSource
, um SendAsync
abzubrechen, wenn sie eine bestimmte Zeitspanne überschreitet.
Aber dann, wenn der Typ und die Größe korrekt sind, hole ich weiterhin die Markup-Zeichenfolge mit ReadAsStringAsync
. Kann ich diesem Anruf ein Abbruch-Token hinzufügen? Wenn der Download zu lange dauert, kann ich ihn abbrechen. Oder kann dies anders gemacht werden?
Ich möchte GetStringAsync
nicht verwenden, da ich eine benutzerdefinierte HttpRequestMessage
verwende.
PS : Ich bin ziemlich neu in C #, 2 Wochen. Etwas könnte mir entgehen.
Nein, das kannst du nicht. Es gibt keine Überladung von ReadAsStringAsync
akzeptiert ein Stornokennzeichen und Sie kann eine nicht abbrechbare asynchrone Operation nicht abbrechen .
Sie können diese Operation jedoch abbrechen und mit der Erweiterungsmethode WithCancellation
fortfahren, wodurch die Operation nicht abgebrochen wird, der Code jedoch wie folgt abläuft:
Tags und Links .net c# async-await dotnet-httpclient