0

HTTP 어댑터를 만들었습니다.워크 라이트 어댑터 응답 헤더 캐시 제어

잘 작동합니다. 를 캐시하지 않습니다 때문에

Cache-Control →no-cache, no-store, must-revalidate 
Content-Length → 
Content-Length 
The length of the response body in octets (8-bit bytes) 
9220 
Content-Type →application/json; charset=UTF-8 
Date →Thu, 19 Jun 2014 12:46:12 GMT 
Expires →Sat, 26 Jul 1997 05:00:00 GMT 
P3P →policyref="/w3c/p3p.xml", CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE" 
X-Powered-By →Servlet/3.0 

을 그리고 클라이언트 응용 프로그램은 HTTP 헤더 정보를 읽고 다음과 같이 내가 헤더 정보와 성공적인 응답을받을

function getStories(interest) { 
    path = getPath(interest); 

    var input = { 
     method : 'get', 
     returnedContentType : 'xml', 
     path : path 
    }; 


    return WL.Server.invokeHttp(input); 
} 

는 RSS의 getStories의 샘플입니다 응답.

어떻게 캐시를 활성화 할 수 있습니까? 또한 "Expires"라는 메시지가 1997 년에 나왔다면이 날짜를 어디서 어떻게 가져 왔는지 알 수 없습니다.

미리 감사드립니다.

+1

만료 날짜에 대한 설명으로, 서버가 쿠키를 만료시키기를 원할 때 클라이언트가 쿠키를 만료하도록 강제하는 과거 날짜를 설정한다고 생각합니다. –

+0

서비스에서받는 헤더 응답에 만료일이 있기 때문에 2 일 앞두고 말할 수 있습니다. 이 헤더는 어댑터 응답의 페이로드가됩니다. 그리고 클라이언트에 대한 헤더 응답에 잘못된 날짜 및 캐시 제어가 있습니다. 따라서 내 이해에 따라 Worklight 서버에서 일부 역할을 수행 할 구성이 있어야합니다. – gaurav001

답변

0

워크 라이트는 변경되지 않은 백엔드 서비스의 헤더를 반환합니다. 그럼에도 불구하고 헤더를 변경하려면 Worklight 어댑터에서 변경할 수 있습니다. 아래의 솔루션에서 얻은 영감은이 기사에서 얻은 것입니다 : Handling Backend Responses in Adapters.

표준 Worklight cnn 어댑터 (New -> Worklight Adapter -> HTTP Adapter)를 만들고 이름을 지정했습니다 (changeHeadersAdapter).

그런 다음 changeHeaderAdapter-impl.js에 나는에 getStories 절차를 변경 :

function getStories(interest) { 
path = getPath(interest); 

var input = { 
    method : 'get', 
    returnedContentType : 'xml', 
    path : path 
}; 

var backendResponse = WL.Server.invokeHttp(input); 

if(backendResponse.isSuccessful && backendResponse.statusCode == 200){ //For simplicity, considering only 200 as valid 
    //Do something interesting with the data 
    backendResponse.responseHeaders['Cache-Control'] = "public, max-age=0"; 
} 
else{ 
    backendResponse.isSuccessful = false; //Overwrite to failure 
} 

return backendResponse; 

}

당신은 내가 "공개"(일반적으로는 반환에 캐시 제어 매개 변수를 변경시피 "은밀한").

내 질문에 대한 답변입니다. 저에게 알려주세요.

관련 문제