HttpListener - ¿Cómo puedo enviar una copia de error HTTP 304 WebException “No modificado” en el navegador?
-
25-09-2019 - |
Pregunta
¿Cómo simular un error de vuelta al navegador WebException 304 si estoy usando HttpListener?
Esto se he recibido una solicitud a mi HttpListener, y luego obtuvo el HttpListenerContext, a continuación, desde este punto ¿cómo me imitan / arreglos para un HTTP "304 Not Modified" de respuesta sea enviado efectivamente de vuelta al navegador a través de la HttpListenerContext .¿respuesta?
EDIT:
He intentado lo siguiente embargo consigo un error al intentar copiar WebException.Status a HttpWebResponse.StatusCode (El código de estado debe ser exactamente tres dígitos). Cualquier ideas sobre cómo corregir esto?
catch (WebException ex)
{
listenerContext.Response.StatusCode = (int)ex.Status; //ERROR: The status code must be exactly three digits
listenerContext.Response.StatusDescription = ex.Message;
listenerContext.Response.Close();
gracias
Solución
Creo que tengo con:
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
int statusCode = (int) ((HttpWebResponse) ex.Response).StatusCode;
listenerContext.Response.StatusCode = statusCode;
listenerContext.Response.StatusDescription = ex.Message;
log("WARNING", uri, "WebException/ProtocolError: " + ex.GetType() + " - " + ex.Message);
}
else
{
log("ERROR", uri, "WebException - " + ex.GetType() + " - " + ex.Message);
}
listenerContext.Response.Close();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow