У меня есть API, который принимает и json и текст в качестве тела запроса.
@Path("submitObjects")
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN})
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN})
public List<APIResult> submitMultiObjects(@DefaultValue("false") @QueryParam(("suppressWarnings"))Boolean suppressWarnings,List<MyObject> objects) {
// API logic
}
class MyObject{
private String name;
private String description;
// and getters and setters
}
Когда я запускаю API с телом запроса в JSON, он работает нормально.
[{
"name": "name1",
"description": "description1"
},{
"name": "name2",
"description": "description2"
}]
успех для указанного выше тела запроса
Но когда я передаю тело запроса в виде обычного текста, происходит сбой с кодом ошибки 415. - Не поддерживается неподдерживаемый тип носителя
name=name1
description=description1
для вышеприведенное тело запроса
name=name1
description=description1
name=name2
description=description2
не выполнено для вышеуказанного тела запроса
Я хотел знать, как мы можем передать список объектов в простом / текстовом формате.
Для API ниже, где я использую MyObject вместо List
@Path("submitObject")
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN})
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN})
public List<APIResult> submitObject(@DefaultValue("false") @QueryParam(("suppressWarnings"))Boolean suppressWarnings,MyObject object) {
// API logic
}
name=name1
description=description1
выше, тело запроса работает нормально.