Uploaded image for project: 'Olingo'
  1. Olingo
  2. OLINGO-1041

Set Cache-Control Header for OData Response

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      Hi all,
      I implemented method 'readEntityMedia' which is called via $value for an entity. As I do return a PDF file I like to set the response header 'Cache-Control' to a defined value which is 'max-age = 86400, public' in my case.

      By default the 'Cache-Control' header is set to private. I tried to change the header by using method 'header' of the ODataResponseBuilder:

      public ODataResponse readEntityMedia(GetMediaResourceUriInfo uriInfo, String contentType) throws ODataException {
      ...
      ODataResponseBuilder responseBuilder = ODataResponse.fromResponse(EntityProvider.writeBinary(mimeTypeRequested, documentData));
      				
      responseBuilder
      	.header("Cache-Control", "max-age = 86400, public")
      	.header("Content-Disposition", "inline;filename=\"" + fileName + "\"");
      				
      return responseBuilder.build();
      
      }
      

      Unfortunately the response header now contains both:
      Cache-Control:private
      and
      Cache-Control:max-age = 86400, public

      which is not what I expected. By calling method 'header' of the ResponseBuilder I expect that if a header already exists it gets overwritten.

      Best regards,
      Alex

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            mirbo mibo
            aparr Alexander Parr
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment