How do I get StatusCode from HttpRequestException?
Solution 1:
Status code was passed as part of a string to HttpRequestException
so that you cannot recover it from such exceptions alone.
The design of System.Net.Http
requires you to access HttpResponseMessage.StatusCode
instead of waiting for the exception.
http://msdn.microsoft.com/en-us/library/system.net.http.httpresponsemessage(v=vs.110).aspx
If you are now following the Microsoft guide, make sure you understand clearly why it asks you to call HttpResponseMessage.EnsureSucessStatusCode
. If you don't call that function, there should be no exception.
Solution 2:
For what its worth, this guy did something clever: https://social.msdn.microsoft.com/Forums/vstudio/en-US/dc9bc426-1654-4319-a7fb-383f00b68def/c-httpresponsemessage-throws-exception-httprequestexception-webexception-the-remote-name?forum=csharpgeneral
In the case where I needed an exception status property, I can do this:
catch (HttpRequestException requestException)
{
if (requestException.InnerException is WebException webException && webException.Status == WebExceptionStatus.NameResolutionFailure)
{
return true;
}
return false;
}