繁体   English   中英

发布请求-春季启动[RequestBody]与Asp.net [FromBody]

[英]Post Request - Spring boot [RequestBody] vs Asp.net [FromBody]

我只是在spring boot post request中遇到问题。 我有一个API端点,它采用String参数,如下所示:

@RequestMapping(method = RequestMethod.POST, value = "/products/add")
public RestMessage addProduct(@RequestBody String name) {
   //Code implementation here   
}

当我从邮递员测试此API端点时,name参数是填充,其名称为name = "\\"value\\"" ;;

我的邮递员要求是:

邮递员要求

我最近从.net迁移,如果将其与Web API 2方法进行比较,我将实现为

[Route("products/add")]
public IHttpActionResult Post([FromBody]string name)
{
    //Code implementation here
}

而且,如果我从邮递员测试此端点,那么我将使用一个简单的字符串将name参数值设置为name = "value"

如何在Spring Boot中实现完全相同的行为。 我了解的是Spring Boot正在考虑将反逗号作为字符串而不是json部分。

如果我以这种格式发送请求 在此处输入图片说明

这是结果 这是怎么回事

更新 :因此,经过一些测试,我发现ASP.net将邮递员字符串值视为字符串对象的行为,它为您忽略了逗号的倒置。 但是在Spring引导中,如果您有一个参数作为字符串,并且必须在@RequestBody中传递它,则不要对其进行字符串化。 对我有效的示例请求为:

工作要求

因此,无需为邮递员中的十字标志打扰。

您需要创建一个POJO。

Class NameDTO {
    private String name;
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
       return this.name;
    }
}

@RequestBody名称DTO名称DTO

现在您可以使用以下名称

name = nameDTO.getName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM