我的控制器看起来像这样:
@RestController
@RequestMapping(path = RestPath.CHALLENGE)
public class ChallengeController {
private final ChallengeService<Challenge> service;
@Autowired
public ChallengeController(ChallengeService service) {
this.service = service;
}
@ApiOperation(value = "Creates a new challenge in the system")
@RequestMapping(method = RequestMethod.POST, consumes = {MediaType.MULTIPART_FORM_DATA_VALUE, MediaType.APPLICATION_OCTET_STREAM_VALUE},
produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
public ChallengeDto create(@ApiParam(value = "The details of the challenge to create") @RequestPart("challengeCreate") @Valid @NotNull @NotBlank ChallengeCreateDto challengeCreate,
@ApiParam(value = "The challenge file") @RequestPart("file") @Valid @NotNull @NotBlank MultipartFile file) {
return service.create(challengeCreate, file);
}
}
我已经尝试更改“消耗”以将 APPLICATION_OCTET_STREAM_VALUE 删除为 MULTIPART_FORM_DATA_VALUE 并尝试删除它,但这些都没有帮助。
如果您需要更多信息,请告诉我。谢谢。
原文由 StackJP 发布,翻译遵循 CC BY-SA 4.0 许可协议
@Rokin 答案很好,但不需要将 json 放入文件并上传。您也可以通过将内容类型传递给 json 对象来实现。 Postman 在发送表单数据时支持内容类型选项。如需进一步了解,请参阅下图,这是自我描述的。