gpt4 book ai didi

java - 在 JAX-RS 中指定 @Produces 通配符处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:52 27 4
gpt4 key购买 nike

假设一个类:

public class MyResource {

@Path("/thing")
public String getThing() {
// returns HTML
}

@Path("/thing")
@Produces(MediaType.APPLICATION_JSON)
public String getThingJSON() {
// returns JSON
}
}

如何让 getThing() 处理标题为 Accept: */* 的请求?目前,使用通配符接受 header 会导致 getThingJSON() 被调用。如果我有一个 Accept: text/html 的接受 header ,那么将调用 getThing()

最佳答案

我遇到了同样的问题,我必须使用特定的 @Produces() 注释来处理方法。这个技巧有效:

@Path("/thing")
public String getThing() {}

@Path("/thing")
@Produces({MediaType.APPLICATION_JSON, "*/*;q=0"})
public String getThingJSON() {}

当使用 MIME 类型时,您可以添加 q 属性,它表示优先级(0 到 1)。缺少 q 属性意味着 1,但显然 q=0 会欺骗 Jersey 使用其他函数。

这有点像 hack,所以我不知道它是否会继续工作,但帮助了我。

关于java - 在 JAX-RS 中指定 @Produces 通配符处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863679/

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