2016-08-02 3 views
0

Ergreifung eines Bildes über GetStreamAsync, wie ermittle ich den Status?Check GetStreamAsync Status

Manchmal gibt dies einen Fehler (403 oder 404 in der Regel) und ich möchte einfach die Verarbeitung dieser Ergebnisse überspringen.

Alles, was ich finden kann, sagt das StatusCode Eigentum oder IsSuccessStatusCode zu verwenden, aber die scheinen nur die Arbeit an HttpResponseMessage, die von GetAsync ist, die mir nicht gibt die Stream Ich brauche das Bild zu verarbeiten.

+0

Es gibt einen Grund all der Httpclient Funktionen async werden, wenn Sie tatsächlich Asynchron-Code nicht planen, über die Verwendung sollten Sie [WebClient] werden (https://msdn.microsoft.com/en-us /library/system.net.webclient(v=vs.110).aspx) und verwenden Sie nicht asynchrone Methoden. –

Antwort

2

Der Stream hat keinen Antwortstatuscode. Sie müssen zuerst die HttpResponseMessage abrufen, den Statuscode prüfen und dann den Stream einlesen.

HttpClient OpenClient = new HttpClient(); 
var response = await OpenClient.GetAsync("imageUrl.jpg"); 
if (response.StatusCode == System.Net.HttpStatusCode.OK) 
{ 
    Stream stream = await response.Content.ReadAsStreamAsync(); 
} 
+0

'System.Threading.Tasks.Task ' enthält keine Definition für 'Inhalt' und keine Erweiterungsmethode 'Inhalt', die ein erstes Argument vom Typ 'System.Threading.Tasks.Task' akzeptiert System.Net.Http.HttpResponseMessage> 'könnte gefunden werden –

+1

Sie haben die Aufgabe nicht erwartet. Überprüfen Sie meinen Code oben: var response = ** erwarten ** OpenClient.GetAsync ("imageUrl.jpg"); – Pharylon