我在一个spring Boot 应用程序中得到了以下@RestController:
@Data
@RestController
public class Hello {
@Autowired
private ResturantExpensesRepo repo;
@RequestMapping(value = "/expenses/restaurants",method = RequestMethod.POST,consumes =MediaType.APPLICATION_JSON_VALUE ,
headers = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public void hello(@RequestBody ResturantExpenseDto dto)
{
Logger logger = LoggerFactory.getLogger("a");
logger.info("got a request");
ResturantExpenseEntity resturantExpenseEntity = new ResturantExpenseEntity();
resturantExpenseEntity.setDate(new Date(System.currentTimeMillis()));
resturantExpenseEntity.setName(dto.getName());
resturantExpenseEntity.setExpense(dto.getExpense());
repo.save(resturantExpenseEntity);
}
}
当我尝试从restClient/RestedClient(mozila的两个插件)发送请求时,我得到以下错误:
{“timestamp”:1512129442019,“状态”:415,“错误”:“不支持的媒体类型”,“message”:“内容类型”text/plain; charset=UTF-8' not supported”,“path”:“/expenses/restaurants”}
这个错误说明了端点不支持JSON内容,但是我确实把它放在了
consumes =MediaType.APPLICATION_JSON_VALUE
@RequestMapping注解内部
我错过了什么?
5条答案
按热度按时间acruukt91#
延迟响应,但我有同样的问题张贴的答案,它可能是有用的人,所以我安装了 Postman ,然后只是改变您的内容类型为应用程序/json
ktecyv1j2#
如果请求是这样的:那就能解决问题
我看到标题是正确的:headers = MediaType.APPLICATION_JSON_VALUE
但是当发出请求时,我们需要通知处理程序它是一个application/json mime类型。
vnzz0bqm3#
这也很晚了,但在RESTClient(Mozilla addon)中,您可以添加Content-Type:应用程序/JSON,甚至在响应端将其更改为JSON格式
im9ewurl4#
如果你使用的是html和apache。检查请求头和有效负载。请确保目录包含以下字段
如果aplog调用具有以下字段,请删除它们并重试
rggaifut5#
如果您试图通过Postman测试此API,
--转到Postman的标题选项卡,
--点击隐藏的标题(您将在顶部看到此信息)
--取消选中Content-Type
--新增表头信息为;
Content-Type(key)和application/json(value)
--测试API,您将获得结果