提问者:小点点

@Request estPart对于Spring控制器中的JSON对象始终为nulljava


@Secured({ "ROLE_CLIENT", "ROLE_TRUSTED_CLIENT", "ROLE_CUSTOMERMANAGERGROUP","ROLE_CUSTOMERGROUP" })
@PostMapping(value = "/create", consumes ={ MediaType.MULTIPART_FORM_DATA_VALUE , MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE })
@ResponseBody
@ApiOperation(nickname = "SaveCompanyDetail", value = " Saves Company Detail", notes = "Saves Company Detail requires the WsDTO with the customer data.", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiBaseSiteIdParam
public String createCompanyDetail(@RequestPart(value = "companyDetails", required = false) final CompanyDetailsData dataObject,  @RequestPart(value = "companyLogo", required = false) final MultipartFile companyLogo) {
    try {
        ///getting dataObject all the time
    } catch (Exception ex) {
        LOG.error("createCompanyDetail :: ",ex.getMessage());
        return FAILED;
    }
    return SUCCESS;
}

公共类CompanyDetailsData实现Serializable{

private static final long serialVersionUID = 1L;
private String id;
private String email;
private String title;
private String phoneNumber;

}

控制器类中的dataObject对象始终为空。

有效负载:{"id":"123","email":"string","phoneNumber":"string","title":"title test"}


共1个答案

匿名用户

尝试使用Curl这样的东西:

curl--location--request POST'https://example.com/create'--form'company详细信息={"id":"123","email":"string","phoneNumber":"string","title":"title test"}'--form'companyLogo=@/path/to/image. png'--header'Content-Type:multipart/form-data'

或者只需在Postman中指定Content-Type,您可能会因为错过它而获得null。您的控制器可以使用3种不同类型的参数,包括JSON、XML和multipart/form-date。尝试明确您要发送的请求类型。

您可以将此线程用作参考:如何在postman中以@Request estPart的形式发送数据