Etag отсутствует в заголовке ответа web api - PullRequest
0 голосов
/ 10 октября 2018

В ответе Web API я пытаюсь установить заголовок Etag внутри действия веб-API.но его нет в заголовке ответа.

Я не могу установить ETag с помощью атрибута ActionFilter.Я должен привести его в действие.

        [CacheControl(MaxAge = 5)]
        public HttpResponseMessage GetStreamByPath(int presId)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            // Some Code here
            //testStream is obj.

            if (testStream != null)
            {
                var getEatg = ETagHelper.GetETag(testStream.LastModifiedDate.ToString());

                if (Request.Headers.Contains("If-None-Match") && Request.Headers.GetValues("If-None-Match").ToString() == getEatg)
                {
                    return Request.CreateResponse(HttpStatusCode.NotModified);
                }

                response.Headers.ETag = new EntityTagHeaderValue(String.Format("\"{0}\"", getEatg));

                response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(testStream.Stream) };
                response.Content.Headers.Add("content-type", " image/jpeg");
            }
            else
            {
                response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
            }

            return response;
        }

1 Ответ

0 голосов
/ 10 октября 2018

Вы можете установить свой заголовок, как показано ниже:

HttpContext.Current.Response.Headers.Add("ETag", String.Format("\"{0}\"", getEatg));
...