我有一个由前端调用的Spring控制器应用程序。Spring @PostMapping将接受XML和JSON。我想基于Content-Type调用不同的方法。
有没有检查传入内容类型的方法?
@CrossOrigin(origins = "*")
@RestController
@RequestMapping("/api")
public class MyController {
@PostMapping(value = "/generator", consumes = {"application/json", "application/xml"}, produces = "application/json")
public String generate(@RequestBody String input) {
try {
System.out.println("INPUT CONTENT TYPE : ");
if(contentType == "application/xml")
{
//Call Method-1
}else if(contentType == "application/json"){
//Call Method-2
}
} catch (Exception exception) {
System.out.println(exception.getMessage());
}
}
}如我们所见,RestController方法接受XML and JSON。我想检查传入的Content-type是根据其需要作出不同的决定。有人能给我解释一下怎么做吗?
请注意:我知道我可以创建不同的方法来处理XML和JSON,但是我希望在一个方法中这样做,这样就可以轻松高效地处理。
发布于 2021-08-16 10:14:52
添加名称为RequestHeader的Content-type
public String generate(@RequestBody String input, @RequestHeader("Content-type") String contentType)注释,它指示方法参数应该绑定到web请求头。
发布于 2021-08-16 10:14:03
您可以使用
@RequestHeader Map<String, String> headers在generate() methode的param中,get的所有标头都来自客户机。
在那之后,只要检查一下
内容类型
价值
https://stackoverflow.com/questions/68800947
复制相似问题