想在POSTMAN中测试post请求。
public enum TimeUnit {
HOURS("hours"),
MINUTE("mins");
private String value;
public static TimeUnit get(String text) {
return Arrays.stream(TimeUnit.values())
.filter(a -> Objects.equals(a.getValue(), text))
.findFirst()
.orElse(null);
}
}
public final class SchoolTimeTable {
private Double value;
private TimeUnit unit;
public SchoolTimeTable (double value, TimeUnit unit) {
this.value = value;
this.unit=unit;
}
}
public class SchoolDto {
private String name;
private String address;
private MultipartFile profileImage;
private MultipartFile[] galleryImages;
private SchoolTimeTable openCloseTime;
}
Spring MVC控制器
@PostMapping(value = "/schoolInfo", produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<Object> saveSchoolInfo( @Parameter(required = true, schema = @Schema(implementation = SchoolDto.class)) SchoolDto schoolDto) throws IOException, InterruptedException {
...
}
我想送SchoolDto(邮递员:尸体-
请帮忙。
当我使用多部分/表单数据时,我使用的是Spring Boot 2.0。x、 Java 8和使用相同方法=POST
您需要正确实施以下几点。也许这可以帮助您:
@RequestMapping(value = MEUVOUCHER_FILE, method = POST, consumes = "multipart/form-data", produces = APPLICATION_JSON_UTF8_VALUE)
@ResponseStatus(code = CREATED)
public ObjectResponse<MEUVOUCHERFileRetrievalDto> createMEUVOUCHERFile(
@RequestPart("MEUVOUCHERFile") MultipartFile MEUVOUCHERFile,
@ApiParam(name = "metadata", value = "{ \"MEUVOUCHERTypeId\" : 0, \"relatedContentId\" : 0, \"expireDate\" : \"datetime\" }", required = true)
我认为您不应该在Application/json
请求中上传文件,为此您应该使用multipart/form-data
请求。您的请求可能有三个部分proileImage
、GalleryImages
和School Info
。
从SchoolDto
类中删除proileImage
和GalleryImages
修改方法签名以支持多部分请求
@PostMapping(value = "/schoolInfo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Object> saveSchoolInfo(@RequestPart(value = "profileImage") MultipartFile profileImage, @RequestPart(value = "galleryImages") MultipartFile[] galleryImages, @RequestPart(value = "schoolInfo") SchoolDto schoolInfo) throws IOException, InterruptedException {
...
}
此外,您还可以使用RestDocumentationExpress
实现@SpringBootTest
单元测试,以检查您的代码是否有效并生成一个curl请求示例,以帮助您了解如何向您的endpoint发出请求
参见sb-mvc-multipart-demo
使用Postman,我可以用表单数据在请求中附加文件,我也可以用原始格式发送嵌套的JSON对象,但是我如何做到这两个:用文件发送嵌套结构的数据,例如:
我有一个REST api,它接受嵌套json的数据,包括多部分文件 在通过postman测试REST api时,我遇到了问题。 我不知道如何发送我需要的各种类型的数据——多部分/表单数据文件和嵌套的json。 我在其他项目中分别使用了REST,但我无法将它们合并到一个请求中。 要使用多部分/表单数据,我必须在正文中选择表单数据,然后从键字段的下拉列表中选择文件,单击值字段上的选择文件按钮,然后选择
我试图将POST请求中的嵌套json对象发送到我的spring REST API。 对象java代码 } 我加了逗号,没有变化
我需要发送一个视频文件和JSON对象在放心的post调用。 我不能在放心地使用multipart时使用application/json。我显式地硬编码了表单param中的值,并以multipart的形式发送了媒体文件,现在它工作得很好。 如何在单个内部对象中发送所有表单参数数据。
我有一个带有嵌套字段的JSON: 我正在使用JSONPATH从嵌套中获取。 我已经将我的JSON文本粘贴到了http://jsonpath.com/这个网站上;并且在使用了这一行之后: 我得到了这个: 使用此行后: 我得到了这个: 我尝试返回(输出)的内容如下: 但是我找不到合适的语法来将这两个组合在一行中,并用一个JSONPATH查询返回它们。
我使用Jhipster,这是一个控制器方法: 控制器: 本质上,我想发布一个文件和一个json对象。 请求负载的外观如下: 这是Spring Boot日志消息: 已解决的由处理程序执行引起的异常:org.springframework.web.multipart.support.MissingServletRequestPartException:所需的请求部分“file”不存在 将content