Я установил Content-Type в RequestSpecBuilder как «ContentType.JSON». Но при выполнении запроса GET я получаю Content-Type как «application / xml» в ответ. Как мне получить ответ от JSON?
Я попробовал следующие подходы:
1. Установите тип содержимого в объекте RequestSpecBuilder с помощью метода setContentType класса RequestSpecBuilder равным «ContentType.JSON» и передайте объект RequestSpecBuilder в методе спецификации RequestSpecification --- получил «application / xml» в ответе
- Установите тип содержимого в объекте RequestSpecification с помощью метода contentType в RequestSpecification и передайте ContentType.JSON в качестве параметра --- по-прежнему получайте «application / xml» в ответе
Примечание: URL веб-службы требует явного указания ".json", чтобы получить ответ json, иначе по умолчанию он возвращает ответ "xml". Однако я хотел установить тип содержимого с помощью RequestSpecBuilder.
Например:
для ответа Json: URL - http://ergast.com/api/f1/2017/circuits.json
для ответа Xml: URL - http://ergast.com/api/f1/2017/circuits
Code:
@Test
public void test_AddHeader() {
//Use of RequestSpecification
String pathUrl = "http://ergast.com/api/f1/2017/circuits";
RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();
requestSpecBuilder = requestSpecBuilder.
setBaseUri(pathUrl).
setContentType(ContentType.JSON).
addQueryParam("limit", "10"); //added query param
RequestSpecification addRequestSpec = requestSpecBuilder.build();
RequestSpecification httpRequest = RestAssured.given().spec(addRequestSpec).contentType(ContentType.JSON);
Response httpResponse = httpRequest.get();
System.out.println(httpResponse.getContentType()); //returns application/xml
System.out.println(httpResponse.getStatusLine()); //returns HTTP/1.1 200 OK
System.out.println(httpResponse.getBody().asString());//returns XML response
}