当前位置: 首页 > 知识库问答 >
问题:

Spring RestController如何同时接受JSON和XML?

上官恩
2023-03-14

我有一个很好用的Spring控制器:

@RestController
@RequestMapping(value = "/widgets")
class WidgetController {
    @RequestMapping(method = RequestMethod.POST)
    WidgetResponse createWidget(@Valid @RequestBody Widget widget) {
        // ...
    }
}
{
  "name" : "Widget1",
  "type" : "spinning",
  "isFizz" : true
}
<widget name="Widget1">
  <type>spinning</type>
  <isFizz>false</isFizz>
</widget>
    null

共有1个答案

松和泰
2023-03-14

使用参数consumes注释@requestmapping

@RequestMapping(value = "/widgets",consumes={MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_XML_VALUE})
WidgetResponse createWidget(@Valid @RequestBody Widget widget){
///
{

参数consumes取MediaType数组

 类似资料:
  • 我刚接触Jersey并尝试实现一个可以分别接受application/json和multipart/form-data content-type的POSTendpoint。 下面是Spring Boot依赖关系: 我通过扩展ResourceConfig和注册我的REST API类配置了必要的资源,还包括一些标准的资源,如下所示: Maven依赖项中已经添加了“jersey-media-json-j

  • 问题内容: 我试图了解如何使用WCF数据服务(基于EF 4.1)创建一个宁静的Web服务,该服务将保留作为JSON对象传递的实体。 我已经能够创建一种方法,该方法可以接受以一组原始数据类型作为参数的GET请求。我不喜欢这种解决方案,我更喜欢在HTTP请求正文中发送带有JSON对象的POST请求。 我发现我无法获得将json序列化为对象的框架,但是我可以手动完成。 我的问题是我似乎无法读取POST请

  • 我试图让我的SSL服务器同时支持TLS 1.1和TLS 1.2,而不支持早期版本。 这是我配置SSL上下文的方式: 我甚至尝试清除选项,如果它是默认设置的。即使我将配置减少到: 当尝试与TLS 1.1客户端连接时,回调仍然会给出错误代码。当与TLS1.2客户端连接时,一切都很好。 如果在构造SSL上下文时,我将第二个参数从更改为,那么TLS1.1工作正常,但TLS1.2不可用。 我已经尝试了Boo

  • 嵌套异常是com.fasterxml.jackson.databind.jsonMappingException:无法从START_OBJECT令牌反序列化java.lang.String实例

  • 问题内容: 我从Spring OAuth2开始。我想将用户名和密码以application / json格式发送到POST正文中的/ oauth / token端点。 那可能吗? 你能给我个建议吗? 问题答案: 解决方案(不确定是否正确,但表明它正在工作): 资源服务器配置: 过滤: 请求包装器: 授权服务器配置(对/ oauth / token端点禁用基本身份验证:

  • 我使用PlayScala框架编写了这个示例应用程序。(类型安全激活器) 现在,这在浏览器中运行得非常好。 但是,当我尝试从curl调用操作时 它会因一条冗长的HTML消息而失败。 我的理解是,如果我使用x-www-form-urlencoded,那么在发帖时,我可以接受来自HTML表单和JSON请求的请求。 我做错什么了吗?还是我的理解有缺陷? 基本上,我希望使用相同的控制器方法操作来服务json