我创建了一个HTTP适配器。
工作正常。
这是rss getStories的样本
function getStories(interest) {
path = getPath(interest);
var input = {
method : 'get',
returnedContentType : 'xml',
path : path
};
return WL.Server.invokeHttp(input);
}
我获得了成功的回复信息,如下所示:
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标头信息,因此不会缓存响应。
如何启用缓存? 如果你注意到" Expires"它也是在1997年,我不知道如何以及从何处开始这个日期。
提前致谢。
答案 0 :(得分:0)
Worklight从后端服务返回标头不变。如果您仍想更改标题,可以在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;
}
如您所见,我将Cache-Control参数更改为“public”(通常会返回“private”)。
我想这会回答你的问题。请告诉我。