gpt4 book ai didi

java - Play Framework 2.4 - Java - Http header 和缓存响应

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:54 24 4
gpt4 key购买 nike

我在发送缓存响应的 header 时遇到问题。

这是我的路线,

 GET    /fassets/XXX.js  com.AssetController.getFileXXX()

还有我的 Controller ,

@Cached(key = XXX, duration = TIMEOUT_SECONDS,)
public Result getFileXXX() {

[...]
final Result result = ok(file).as("application/javascript");
response().setHeader(CACHE_CONTROL, "max-age=100");
return result;
}

问题在于,对于第一个请求,cache-control : max-age=100 被正确发送。对于其他情况,结果被缓存并且未设置 header 。

我尝试过

result.headers().put(CACHE_CONTROL, "max-age=10")

但这会导致运行时错误:

Caused by: java.lang.UnsupportedOperationException: null
at java.util.AbstractMap.put(AbstractMap.java:209) ~[na:1.8.0_45]

我还发现了一些有趣的东西可以解决这个问题,但是在 scala 中:

val result = Ok("Hello World!").withHeaders(CACHE_CONTROL -> "max-age=3600")

预先感谢您的帮助。

朱利安

最佳答案

我认为answer by Codemwnci也适用于您的问题:

您需要查看JavaResponse section .

文档中设置缓存控制的示例是

public static Result index() {
response().setContentType("text/html");
response().setHeader(CACHE_CONTROL, "max-age=3600");
response().setHeader(ETAG, "xxx");
return ok("<h1>Hello World!</h1>");
}

我会在调用 ok 之前设置 response().setHeader 内容。

关于java - Play Framework 2.4 - Java - Http header 和缓存响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36328673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com