J'essaie d'obtenir le numéro de code d'état HTTP de l' HttpWebResponse
objet renvoyé par a HttpWebRequest
. J'espérais obtenir les chiffres réels (200, 301, 302, 404, etc.) plutôt que la description textuelle. ("Ok", "MovedPermanently", etc.) Le numéro est-il enterré dans une propriété quelque part dans l'objet de réponse? Des idées autres que la création d'une fonction de gros interrupteur? Merci.
HttpWebRequest webRequest = (HttpWebRequest)WebRequest
.Create("http://www.gooogle.com/");
webRequest.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
//Returns "MovedPermanently", not 301 which is what I want.
Console.Write(response.StatusCode.ToString());
c#
.net
http
httpwebrequest
James Lawruk
la source
la source
Réponses:
HttpStatusCode (le type de
response.StatusCode
) est une énumération où les valeurs des membres correspondent aux codes d'état HTTP, par exemplela source
bool success = ((int)response.StatusCode) >= 200 && ((int)response.StatusCode) < 300;
Vous devez être prudent, les réponses du serveur dans la plage 4xx et 5xx lèvent une exception WebException. Vous devez l'attraper, puis obtenir le code d'état à partir d'un objet WebException:
la source
Selon 'dtb', vous devez utiliser HttpStatusCode, mais après 'zeldi', vous devez être extrêmement prudent avec les réponses de code> = 400.
Cela a fonctionné pour moi:
la source
Il suffit de forcer le
StatusCode
toint
.la source
la source