MediaType 是 Spring 框架中用于表示 HTTP 请求或响应的内容类型(Content-Type) 的类,全限定类名为:org.springframework.http.MediaType
例如:
public class RequestRecordFilter implements GlobalFilter,Ordered {
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
MediaType mediaType =exchange.getRequest().getHeaders().getContentType();
boolean flag = RequestHelper.isUploadFile(mediaType);
if (flag){
return chain.filter(exchange);
}else{
....
}
}
}
public class RequestHelper {
public static boolean isUploadFile(@Nullable MediaType mediaType) {
if (Objects.isNull(mediaType)) {
return false;
}
return mediaType.includes(MediaType.MULTIPART_FORM_DATA)
|| mediaType.includes(MediaType.IMAGE_GIF)
|| mediaType.includes(MediaType.IMAGE_JPEG)
|| mediaType.includes(MediaType.IMAGE_PNG)
|| mediaType.equals(MediaType.MULTIPART_FORM_DATA_VALUE);
}
}
返回值类型是 MediaType,表示请求体的媒体类型(如 JSON、表单、文件上传等)
类型 | MediaType 常量 | 示例 |
JSON | MediaType.APPLICATION_JSON | application/json |
表单 | MediaType.APPLICATION_FORM_URLENCODED | application/x-www-form-urlencoded |
文件上传 | MediaType.MULTIPART_FORM_DATA | multipart/form-data |
XML | MediaType.APPLICATION_XML | application/xml |
纯文本 | MediaType.TEXT_PLAIN | text/plain |