Estoy tratando de obtener el número de código de estado HTTP del HttpWebResponse
objeto devuelto por a HttpWebRequest
. Esperaba obtener los números reales (200, 301,302, 404, etc.) en lugar de la descripción del texto. ("Ok", "MovedPermanently", etc.) ¿Está enterrado el número en una propiedad en algún lugar del objeto de respuesta? ¿Alguna otra idea además de crear una función de interruptor grande? Gracias.
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
fuente
fuente
Respuestas:
HttpStatusCode (el tipo de
response.StatusCode
) es una enumeración donde los valores de los miembros coinciden con los códigos de estado HTTP, p. Ej.fuente
bool success = ((int)response.StatusCode) >= 200 && ((int)response.StatusCode) < 300;
Debe tener cuidado, las respuestas del servidor en el rango de 4xx y 5xx arrojan una WebException. Necesita atraparlo y luego obtener el código de estado de un objeto WebException:
fuente
Según 'dtb', debe usar HttpStatusCode, pero después de 'zeldi' debe tener mucho cuidado con las respuestas de código> = 400.
Esto me ha funcionado:
fuente
Solo coaccionar
StatusCode
a laint
.fuente
fuente