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

Set Cache-Control Header for OData Response

    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

          People

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

            Dates

              Created:
              Updated:
              Resolved: