Ich habe nach einer definitiven Dokumentation gesucht, aber ich hatte nicht viel Glück dabei.
Grundsätzlich - die Frage ist - für welche HTTP-Statuscodes, die vom Server zurückkommen, wird HttpWebRequest.GetResponse () eine WebException generieren, nachdem etwas wie sagen wir einen POST gemacht hat?
Speziell - wird es eine WebException für etwas anderes als Status 200 OK erzeugen? Oder wird es nur eine WebException für say, 400, 404 und 500 generieren (aus Gründen des Arguments).
Ich möchte wissen, da der Server, mit dem ich kommuniziere, alles andere als HTTP 200 OK als Fehlerbedingung zurückgibt - und der Schlüssel ist, kann ich mich darauf verlassen, dass eine WebException für etwas anderes als 200 generiert wird? (Ich habe meinen Code derzeit so geschrieben, dass er den Statuscode für die Rückgabe immer überprüft, um sicherzustellen, dass er 200 OK ist. Falls nicht, sollten Sie geeignete Maßnahmen ergreifen. Es besteht jedoch viel Doppelarbeit und der catch-Block für eine WebException. und ich hoffe, es aufzuräumen ...)
Alle relevanten Links zur Dokumentation würden sehr geschätzt.
Danke!
Das WebException-System ist ein separates System von HTTP-Fehler-System . Dies liegt hauptsächlich daran, dass die HTTP-Fehler vom Browser oder Client zurückgegeben werden und die WebException vom Server beim Erstellen der Seite ausgelöst wird. Zu dem Zeitpunkt, zu dem ein HTTP-Fehler gefunden wird, wird die Seite an den Client gesendet und Sie werden nichts davon erfahren.
Ich denke es wird, aber es klingt wie eine riskante Annahme zu machen. Zum einen machen die MSDN-Dokumente klar, dass GetResponse
wird Ausnahmen außer WebException
auslösen. Ich kann jedoch aus Erfahrung sagen, dass eine "304 Not-Modified" -Antwort als WebException
ausgelöst wird.
All dieses Gerede gibt einen pfiffigen Code Smell aus; Verwenden Sie keine Ausnahmen, um den Ausführungsablauf zu steuern. Sie wären besser dran, Exceptions ordnungsgemäß zu behandeln und die Eigenschaft StatusCode
für Ihre zulässigen Werte explizit zu überprüfen.
Tags und Links c# exception-handling exception httpwebrequest system.net.webexception