C # Net.HttpClient Abbrechen ReadAsStringAsync?

8

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.

    
CodeAngry 09.08.2014, 13:54
quelle

1 Antwort

5

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:

%Vor%     
i3arnon 09.08.2014, 13:58
quelle