【发布时间】:2018-01-09 08:05:17
【问题描述】:
而我的控制器就像
@RequestMapping(value = "/auth/company/delete", method = RequestMethod.POST,
produces = {"application/json", "application/xml"})
@ResponseBody
public ResponseMessage deleteCompany(@RequestParam("companyId") Integer companyId) {
return companyManageService.deleteCompany(companyId);
}
但是当我使用
在 chrome 控制台中输入代码时$.post( "http://ltc_dev.leapstack.cn/gw/security/auth/company/delete", { companyId: 1 })
.done(function( data ) {
alert( data.success);
alert( data.message);
});
我得到了正确的回应,所以...... 我不确定这是邮递员的错误,还是我配置控制器错误
【问题讨论】:
-
您通过邮递员发送的不是 requestParam。它是请求体。如果您想将其作为请求参数发送,您的 url 应该是 /auth/company/delete?companyId=2
-
@barbakini 即使我将 #RequestParam 更改为 #RequestBody 它仍然无法正常工作,我尝试使用 #RequestBody 将 companyId 从 Integer 更改为 String 并获得值为 "companyId":2 而不是 2 !
-
您是否尝试过 ** /auth/company/delete?companyId=2** ?如果更改 requestBody,您的方法应该得到一个 Map 对象,而不是 String 或 Integer。比如 deleteCompany(@RequestBody Map body) body.get("candidateId)
-
我想用整数在 post 请求中接收一个 json 字符串
-
您应该阅读一些关于什么是 json 字符串以及如何将其转换为 java 类型的内容。您问题中的 json 字符串是 {"companyId":2} 并且如您所见,它不能直接转换为整数(因为它是非数字字符串值)。您可以将它包装到一个具有属性 int companyId 的类中,spring 会自动将 cat 放入您的控制器方法中,或者就像我上面所说的,它可以转换为具有一个元素的地图,其 key 是 companyId,value 是 2。我会为您发布答案。
标签: spring-boot http-post postman