Verwendung von EnsureSuccessStatusCode und Behandlung von HttpRequestException
Was ist das Nutzungsverhalten der HttpResponseMessage.EnsureSuccessStatusCode()
? Es verfügt über den Inhalt der Nachricht und wirft HttpRequestException
aber ich sehe nicht, wie Sie programmgesteuert verarbeiten es anders als eine generische Exception
. Zum Beispiel, es hat nicht das HttpStatusCode
hätte handlich.
Gibt es eine Möglichkeit zu bekommen, weitere Infos aus ihm heraus? Könnte jemand zeigen, jeweiligen Nutzungs-Muster der beiden EnsureSuccessStatusCode()
und HttpRequestException?
InformationsquelleAutor der Frage G. Stoynev | 2014-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die idiomatische Verwendung von
EnsureSuccessStatusCode
ist kurz und prägnant überprüfen Sie den Erfolg einer Anfrage, wenn Sie nicht wollen, zu behandeln Ausfall Fällen in einer bestimmten Art und Weise. Dies ist besonders nützlich, wenn Sie wollen, um schnell einen Prototyp für einen client.Wenn Sie sich entscheiden, die Sie behandeln möchten Fehler Fälle in einer bestimmten Weise, nicht tun die folgende.
Diese eine exception wirft, nur um sofort fangen, das macht keinen Sinn. Die
IsSuccessStatusCode
Eigenschaft vonHttpResponseMessage
gibt es für diesen Zweck. Führen Sie die folgenden stattdessen.InformationsquelleAutor der Antwort Timothy Shields
Ich weiß nicht, wie EnsureSuccessStatusCode als es nichts zurückgibt, meaninful.
Deshalb habe ich meine eigene extension:
source-code für Microsofts EnsureSuccessStatusCode finden hier
Synchron-version, basierend auf SO link :
Was ich nicht mag, über IsSuccessStatusCode ist, dass es nicht "schön" wiederverwendbar. Zum Beispiel können Sie die Bibliotheken benutzen, wie polly zu wiederholen, eine Anfrage bei einem Netzwerk-Problem. In diesem Fall müssen Sie Ihren code zu erhöhen Ausnahme, so dass polly oder andere Bibliotheken damit umgehen kann...
InformationsquelleAutor der Antwort pajics
Ich weiß, das ist nicht der beste Weg, es zu tun, aber ich bin mit so:
Bitte lassen Sie mich wissen, wenn Sie irgendwelche beste Lösung.
Beste Grüße,
B. J.
InformationsquelleAutor der Antwort B.J.