Прежде всего, имейте в виду, что REST Assured является HTTP-клиентом, в первую очередь предназначенным для тестирования HTTP-API.Итак, позвольте мне подчеркнуть, что вы не должны использовать REST Assured ни для чего, кроме тестирования.
Похоже, что конечная точка, которую вы пытаетесь использовать, возвращает документ JSON в полезной нагрузке ответа, но значениезаголовок Content-Type
равен text/html;charset=UTF-8
, поэтому REST Assured не может проанализировать ответ как документ JSON и преобразовать его в экземпляр ZipData
.Это не то, что вы ожидаете от надежного HTTP API.
Вы можете обойти это и написать filter , чтобы переопределить заголовок Content-Type
, как показано ниже:
public class OverrideContentTypeFilter implements Filter {
@Override
public Response filter(FilterableRequestSpecification requestSpec,
FilterableResponseSpecification responseSpec,
FilterContext ctx) {
Response next = ctx.next(requestSpec, responseSpec);
return new ResponseBuilder().clone(next).setContentType(ContentType.JSON).build();
}
}
Затем используйте его следующим образом:
ZipData zipdata =
given()
.filter(new OverrideContentTypeFilter())
.when()
.get(uri)
.then()
.statusCode(200)
.extract()
.as(ZipData.class);