Wie WebException für 403 Forbidden Antwort zu vermeiden?
-
08-10-2019 - |
Frage
Ich habe eine Anwendung, die manchmal einige Anfragen an den Server tun müssen, um zu sehen, dass diese Anträge ordnungsgemäß blockiert sind. Mit anderen Worten, die erwartet Server Antwort ist 403 Forbidden.
Mit einem Stück Code wie folgt aus:
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(protectedPage);
httpRequest.Method = WebRequestMethods.Http.Head;
WebResponse response = HttpRequest.GetResponse();
ein WebException
in der letzten Zeile geworfen wird.
Wenn der Code Profilieren, diese Ausnahme in einem try / catch-Block hat eine Auswirkung auf der Leistung, die ich vermeiden will.
Gibt es eine Möglichkeit für Server-Antwort zu überprüfen, ein 403 erwartet, ohne eine Ausnahme zu fangen, die (aber über Sockets direkt zu vermeiden)?
Lösung
Das WebException
Objekt verfügt über eine Response
Eigenschaft, die die Antwort enthält; wenn Sie die Ausnahme behandeln, ist es wichtig, dass WebResponse
Objekt (zur Vermeidung von undichten Verbindungen) zu entsorgen.
Andere Tipps
Was Zeit in der Profilierung ist Einnahme ist wahrscheinlich nicht die Ausnahme Fangteil aber die tatsächliche Antwort von der Website.
Die WebException.Status Eigenschaft geben Sie den Statuscode für die HTTP-Antwort und Sie können die Weiterverarbeitung tun auf dieser Grundlage.