Pergunta

Como eu imito um erro de WebException 304 de volta ao navegador se estiver usando o httplistener?

Ou seja, recebi uma solicitação ao meu HttPlistener e, em seguida, obtive o HttPlistenerContext, então, a partir deste ponto, como eu imitaria/providenciaria uma resposta http "304 não modificada" para ser efetivamente enviada de volta ao navegador por meio do httpListeRerContext. Responsion?

EDITAR:

Eu tentei o seguinte, no entanto, recebo um erro tentando copiar webException.status para httpwebroponse.statuscode (o código de status deve ser exatamente três dígitos). Alguma idéia de como corrigir isso?

    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();

obrigado

Foi útil?

Solução

Eu acho que tenho com:

    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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top