163 votes

Codes http System.Net.WebException

existe-t-il un moyen simple d'obtenir le code http à partir d'un System.Net.WebException ?

262voto

LukeH Points 110965

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
    }
}
 

10voto

pr0gg3r Points 499

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;
}
 

1voto

JaredPar Points 333733

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X