为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 spring rest 服务返回 XML 响应?

如何从 spring rest 服务返回 XML 响应?

慕的地8271018 2023-05-17 16:09:48
我试图在我的简单 spring rest 服务中返回一个 xml 响应。我使用 spring initializr 启动并创建了一些员工类和一个客户端来发送请求。默认似乎是 JSON 输入和输出,但当我尝试将其更改为 XML 时,它仍然以 JSON 响应。我尝试在员工类中添加 XML 注释,并在 @GetMapping 方法旁边添加 @ResponseBody。我还看到了其他一些需要添加某种 spring 配置的方法,但是 spring initializr 不包含任何配置文件,只是一个 pom.xml。EmployeeController.java@RestControllerpublic class EmployeeController {    @Autowired    private EmployeeService employeeService;    @GetMapping("/employees")    public @ResponseBody HashMap<String, Employee> retrieveEmployees() {        return employeeService.retrieveAllEmployees();    }    @GetMapping("/employees/{employeeId}")    public @ResponseBody Employee retrievebyId(@PathVariable String employeeId) {        return employeeService.retrieveEmployee(employeeId);    }    @PostMapping(path="/employees")    public ResponseEntity<Void> registeremployee(@RequestBody Employee newemployee) {        Employee employee = employeeService.addEmployee(newemployee.getId(),newemployee.getName(), newemployee.getDescription());        if (employee == null)            return ResponseEntity.noContent().build();        URI location = ServletUriComponentsBuilder.fromCurrentRequest().path(                "/{id}").buildAndExpand(employee.getId()).toUri();        return ResponseEntity.created(location).build();    }}
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您需要将映射更新为:

@GetMapping("/employees", produces = MediaType.APPLICATION_XML_VALUE)

另外,请确保您有 publicgetterssettersin your EmployeeService.javaclass。


查看完整回答
反对 回复 2023-05-17
?
撒科打诨

TA贡献1934条经验 获得超2个赞

你必须使用而不是这条线

httpHeaders.setContentType(MediaType.APPLICATION_XML);

headers.setAccept(Collections.singletonList(MediaType.APPLICATION_XML));

在 RestTemplate 标头中。

您也可以通过这种方式进行。

headers.set("Accept", MediaType.APPLICATION_XML);

此外,在 Rest 端点的情况下,您还必须支持 XML 和 JSON,如下所示。

@GetMapping(path = "/{your path}", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})



查看完整回答
反对 回复 2023-05-17
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信