springboot项目中接口代码是 @PostMapping("/addAdvert") @ApiOperation(value = "新增广告") @ApiImplicitParams({ @ApiImplicitParam(name = "advertDto", value = "广告对象", dataType = "AdvertDTO", paramType = "body"), @ApiImplicitParam(name = "file", value = "文件", dataType = "__file", paramType = "form") }) public JsonData<String> addAdvert(@RequestBody AdvertDTO advertDto, MultipartFile file),配置是 @Bean public Docket createRestApi(Environment environment) { return new Docket(DocumentationType.SWAGGER_2) .groupName("v1") .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.ruifan.taihaolian")) .paths(PathSelectors.any()) .build() .consumes(Sets.newHashSet("application/json", "multipart/form-data")) // 添加 support for multipart/form-data .produces(Sets.newHashSet("application/json")) .directModelSubstitute(byte[].class, String.class) .useDefaultResponseMessages(false); ,引入了<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> Swagger2调用该接口报错Content type 'multipart/form-data;boundary=----WebKitFormBoundaryubXGS6xpNFd3ij0f;charset=UTF-8' not supported
时间: 2024-02-02 08:04:43 浏览: 81
你的问题是 Swagger2 调用接口时报错 Content type 'multipart/form-data;boundary=----WebKitFormBoundaryubXGS6xpNFd3ij0f;charset=UTF-8' not supported。
这个问题可能是因为 Swagger2 不支持使用 MultipartFile 类型的文件上传,你需要将 Swagger2 的配置中的 `consumes` 改为 `multipart/form-data`。
你可以尝试修改你的 Swagger2 配置代码如下:
```java
@Bean
public Docket createRestApi(Environment environment) {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("v1")
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.ruifan.taihaolian"))
.paths(PathSelectors.any())
.build()
.consumes(Collections.singleton(MediaType.MULTIPART_FORM_DATA_VALUE)) // 修改为使用 MediaType.MULTIPART_FORM_DATA_VALUE
.produces(Collections.singleton(MediaType.APPLICATION_JSON_VALUE))
.directModelSubstitute(byte[].class, String.class)
.useDefaultResponseMessages(false);
}
```
这样应该可以解决你的问题。
阅读全文