在Java编程中,它用于表示在HTTP通信中传输的数据类型。
MediaType由两部分组成:主类型和子类型,用斜杠(/)进行分隔。
@Produces
和 @Consumes
@Path("/example")
public class ExampleResource {
@GET
@Produces(MediaType.APPLICATION_JSON)//@Produces:指定资源方法返回的媒体类型。
public MyResponseObject getExample() {
// 返回一个JSON对象
return new MyResponseObject("Hello, World!");
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)//@Consumes:指定资源方法接受的请求体的媒体类型。
public MyResponseObject postExample(MyRequestObject request) {
// 处理JSON请求体,并返回一个JSON对象
return new MyResponseObject("Received: " + request.getMessage());
}
// 简单的POJO类
public static class MyRequestObject {
private String message;
// getter和setter
}
public static class MyResponseObject {
private String message;
// 构造函数、getter和setter
}
}
获取主类型和子类型
getType()
: 返回媒体类型的主类型(如"application")。getSubtype()
: 返回媒体类型的子类型(如"json")。
MediaType mediaType = MediaType.APPLICATION_JSON_TYPE;
String type = mediaType.getType(); // "application"
String subtype = mediaType.getSubtype(); // "json"
检查兼容性
isCompatible(MediaType other)
: 检查当前媒体类型是否与另一个媒体类型兼容。
MediaType mediaType1 = MediaType.APPLICATION_JSON_TYPE;
MediaType mediaType2 = MediaType.APPLICATION_XML_TYPE;
boolean isCompatible = mediaType1.isCompatible(mediaType2); // false
转换为字符串
toString()
: 返回媒体类型的字符串表示(如"application/json")。 解析和创建MediaType.parse(String mediaType)
: 解析字符串并创建MediaType
实例。MediaType.valueOf(String mediaType)
: 类似于parse
,但更常用于枚举类型值。
String mediaTypeStr = "application/pdf";
MediaType mediaType = MediaType.parse(mediaTypeStr);
// 现在可以使用mediaType对象,例如获取主类型和子类型
其他方法(这些方法可能因库的不同而有所差异)
withCharset(Charset charset)
: 创建新实例,具有指定字符集。withoutParameters()
: 创建新实例,无参数。getParameters()
: 返回参数映射。hasParameter(String name)
: 检查是否有指定参数。getParameter(String name)
: 获取指定参数的值。