Получение 415 Unsupported Media Type при попытке отправить тело запроса в текстовом / обычном виде - PullRequest
0 голосов
/ 16 января 2020

У меня есть 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

выше, тело запроса работает нормально.

...