Httplistener - Как отправить webexception http 304 "не изменена" ошибка обратно в браузер?

StackOverflow https://stackoverflow.com/questions/2611264

Вопрос

Как я могу имитировать ошибку WebException 304 обратно в браузер, если я использую httplistener?

То есть я получил запрос к моему httplistener, а затем получил httplistenercontext, а затем с этого момента, как бы я имитировать / организовать для http "304 не модифицированного" ответа, который будет эффективно отправлен обратно в браузер через httplistenercontext.response?

РЕДАКТИРОВАТЬ:

Я попробовал следующее, однако я получаю ошибку, пытаясь скопировать webexception.status на httpwebresponse.statuscode (код состояния должен быть ровно тремя цифрами). Любые идеи о том, как исправить это?

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

Спасибо

Это было полезно?

Решение

Я думаю, что у меня есть это с:

    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();
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top