[ 
https://issues.apache.org/jira/browse/OLINGO-1041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15636302#comment-15636302
 ] 

Michael Bolz commented on OLINGO-1041:
--------------------------------------

Hi [~aparr],

Your problem with the {{Cache-Control}} header does not come from Olingo.
I think the second {{Cache-Control}} header is added by the (server) 
environment in which your Olingo (OData) services runs.
If e.g. the reference service is deployed on a local Tomcat either no 
{{Cache-Control}} header or if set via the {{.header(..,..)}} method only the 
set header is sent as response.

Hence I do not think that this can be changed by Olingo it must be changed 
(configured) in the server environment.

Best Regards, Michael

> Set Cache-Control Header for OData Response
> -------------------------------------------
>
>                 Key: OLINGO-1041
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1041
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-core
>    Affects Versions: V2 2.0.6
>         Environment: SAP HANA Cloud Platform
>            Reporter: Alexander Parr
>            Priority: Minor
>              Labels: ODataResponseBuilder, cache-control, header, headers
>
> 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:
> {code:borderStyle=solid}
> 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();
> }
> {code}
> 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to