existe-t-il un moyen simple d'obtenir le code http à partir d'un System.Net.WebException
?
Réponses
Trop de publicités?Peut-être que quelque chose comme ça ...
try
{
// ...
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
var response = ex.Response as HttpWebResponse;
if (response != null)
{
Console.WriteLine("HTTP Status Code: " + (int)response.StatusCode);
}
else
{
// no http status code available
}
}
else
{
// no http status code available
}
}
cela ne fonctionne que si WebResponse est un HttpWebResponse.
try
{
...
}
catch (System.Net.WebException exc)
{
if ((exc.Response is System.Net.HttpWebResponse) &&
(exc.Response as System.Net.HttpWebResponse).StatusCode == System.Net.HttpStatusCode.Unauthorized)
MessageBox.Show("401");
else
throw exc;
}
Je ne sais pas si c'est le cas, mais s'il existait une telle propriété, elle ne serait pas considérée comme fiable. Un WebException
peut être déclenché pour des raisons autres que les codes d'erreur HTTP, y compris les erreurs de réseau simples. Ceux-ci n'ont aucun code d'erreur http correspondant.
Pouvez-vous nous donner un peu plus d'informations sur ce que vous essayez d'accomplir avec ce code? Il existe peut-être un meilleur moyen d'obtenir les informations dont vous avez besoin.