¿Alguien puede ayudar a aclarar el uso de la propiedad "StatusCode" en HttpWebResponse y WebException?C# HttpWebRequest.GetResponse: ¿cómo se maneja el uso de StatusCode para una respuesta de no excepción vs webexception?
Por ejemplo, parece que si:
a) no constituye una excepción, entonces el HttpWebResponse tendrá un StatusCode que podría tener algunos valores que indican tanto: - éxito (por ejemplo, OK, Aceptado etc) - fallo (por ejemplo useproxy, RequestTimeout etc)
b) hay una banda WebExeption, que en sí misma tiene un objeto de respuesta que de nuevo tiene un StatusCode (que supongo se basa en la misma enumeración HttpStatusCode.
pregunta 1 - ¿Hay alguna consistencia en términos de lo que StatusCode generará una WebException (y elegiría los detalles dentro de la excepción), frente a la cual regresaría sin una excepción pero encontraría el resultado en el StatusCode de el objeto de respuesta?
Pregunta 2 - O más específicamente cuál es el código pseduo (o C# código en sí mismo) para tratar de manejar una llamada HttpWebRequest.GetResponse tal que se quiere diferenciar entre las categorías de respuestas para el usuario:
configuración de proxy/proxy de tema => lo que puede decirle al usuario corregir la configuración del proxy
problema de conectividad/servidor web abajo => para que el usuario es consciente de esta
error del lado del servidor (p. servidor está ahí, pero hay un manejo de la solicitud de emisión - por ejemplo, el contenido no existe) => lo que el usuario puede aumentar con el administrador de sitio web
caso de éxito (y supongo que esto sería más que un simple permiso) => na (caso de éxito)
gracias
Pero, ¿cuántos posibles códigos de retorno podrían existir para el caso de no excepción cuando obtiene una respuesta directamente? Hay un número de códigos de respuesta diferentes en el rango 200, por ejemplo. ¿O es la primera respuesta correcta aquí en que solo 200 o 0 son posibles para el caso de no excepción? – Greg
Respuesta actualizada. – ata
Gracias, entonces esto significaría que asumo que puede hacerlo, por ejemplo: una respuesta exitosa (es decir, no es una excepción) pero un código de estado de 300 donde en general sigue siendo un problema para el usuario? Entonces, para verificar el verdadero éxito, debe verificar si WebException + verifica el código de estado en el rango 200. – Greg