我曾试图谷歌,但无法找到有关此主题的内容。 问题是:
我有
Content-Type: multipart/mixed; TYPE=<paramValue>; boundary=----WebKitFormBoundaryMfWZACtN4mYmJK06;
其中 paramValue 可以是 paramValue1 和 ParamValue2
无论如何都要按TYPE参数值推迟REST调用。类似的东西:
@Consumes("multipart/mixed; TYPE=paramValue1")
@POST
postParameterValue1()
和
@Consumes("multipart/mixed; TYPE=param**Value2**")
@POST
postParameterValue2()
答案 0 :(得分:0)
您需要明确哪个REST库。我知道的人无法处理您的请求。例如,你怎么能预测边界参数?什么是“TYPE”?它真的是您的内容类型的一部分,还是只是控制您的服务器的工具? 我会说,不 - 用restEASY是不可能的。而且你自己似乎很难实现。
答案 1 :(得分:0)
我不需要预测 bodypart 。这只是一个例子。我们可以忘记它。关于REST实现。我使用的是javax.ws.rs-api-2.1.jar。 TYPE 只是自定义参数,只能有多个值。我能够获得内容类型标题参数的地图:
Map<String, String> contentTypeParameters = multiPart.getMediaType().getParameters();
并且认为可能有一个注释让我避免在程序化的过程中实现这一点。如果有人遇到这个问题并且知道答案 - 我将不胜感激。
答案 2 :(得分:0)
你不能用注释做到这一点。 我建议你写一个小逻辑来处理这种情况。
首先,您应该创建一个rest方法来接收所有请求。此方法的输入参数应为Content-Type
标头的值。然后你可以检查价值并做任何你想做的事情:
private static final String CASE_1 = "paramValue1"
@POST
postParameterValue(@HeaderParam("Content-Type") final String contentType) {
if (CASE_1.equals(contentType)) {
handleCase1Request();
} else {
handleCase2Request();
}
}
private void handleCase1Request() {
// do anything what you like
}
private void handleCase2Request() {
// do anything what you like
}