我正在尝试使用包在同一请求中传递主体和参数 dio。
我在Spring启动时有此方法:
FormData formData = new FormData.from({
"barcode": barcode != null ? this.barcode : null,
"idUsuario": user.id,
"nombre": _textController.text,
"aditivos": aditivosLeidos,
"imagen": pickedImage
});
await dio.post('https://10.0.2.2:8443/api/guardarproducto',
data: formData);
我尝试通过以下方式执行此请求:
{
"timestamp": "2019-07-03T12:11:39.902+0000",
"status": 400,
"error": "Bad Request",
"message": "Required request body is missing: public org.springframework.http.ResponseEntity<ual.dra.rest.Usuario> ual.dra.rest.AditivoController.insertProduct(java.lang.String,org.springframework.web.multipart.MultipartFile)",
"path": "/api/guardarproducto"
}
但是我得到了
Opts
如何在同一请求中传递主体并请求参数?
我不在乎使用Dio或Http包。
答案 0 :(得分:2)
好的,我不确定抖动和飞镖的工作原理,但是在春季启动中,当您尝试同时发布RequestBody
和MultiPart
时,请考虑使用@RequestPart
@PostMapping("/guardarproducto")
public ResponseEntity<Usuario> insertProduct(@RequestPart("body") String body,
@RequestPart("imagen") MultipartFile imagen) {
....
}
,同时在FormData
中发布正文时,您已将json设置在一个对象中。下面是json。
{
"barcode": "XAWA"
"idUsuario": 1,
"nombre": 1,
"aditivos": "1"
}
然后在FormData
FormData formData = new FormData.from({
"body" : { "barcode": barcode != null ? this.barcode : null,
"idUsuario": user.id,
"nombre": _textController.text,
"aditivos": aditivosLeidos
}
"imagen": pickedImage
});
Note : "body" and "imagen" are in same level.
答案 1 :(得分:0)
对于请求正文和multipart参数都使用@RequestPart
。