alb*_*jan 8 java java-8 spark-java
我有这个:
get ("/test", (req, resp) -> {
return repository.getAll();
}, new JsonTransformer());
Run Code Online (Sandbox Code Playgroud)
我的变压器看起来像:
public class JsonTransformer implements ResponseTransformer {
ObjectMapper om = new ObjectMapper();
public JsonTransformer() {
}
@Override
public String render(Object o) throws Exception {
return om.writeValueAsString(o);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在响应中使用标题函数添加标题,如下所示:
get ("/test", (req, resp) -> {
resp.header("Content-Type", "application/json");
return repository.getAll();
}, new JsonTransformer());
Run Code Online (Sandbox Code Playgroud)
我尝试过在文档中找到的内容:我认为这会设置接受类型
get ("/test", "application/json", (req, resp) -> {
return repository.getAll();
}, new JsonTransformer());
Run Code Online (Sandbox Code Playgroud)
但无处我得到application/json我的Content-Type头
Gab*_*iel 15
在研究之后我发现了一种解决这个问题的优雅方法,我创建了一个before方法.
before((request, response) -> response.type("application/json"));
Run Code Online (Sandbox Code Playgroud)
这会将响应类型添加到json.
您可以在路线后添加它,但以后可能会变得麻烦.thx albertjan为你的小费:)
您可以Content-Type使用如下response.type函数设置响应:
get("test", (req, resp) -> {
resp.type("application/json");
return repository.getAll()
}, new JsonTransformer());
Run Code Online (Sandbox Code Playgroud)