При ответе с сервера не полностью передаются значения полей в переменные
Хочу записать значения полей в переменные объекта класса Headers( соответствующее значение соответствующему полю). При получении респонса только некоторые поля корректно обрабатываются, остальные null. Почему так и как исправить? Не могу разобраться проблема в коде или конфликт зависимостей или черт знает что.
package TestAPI;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.beans.ConstructorProperties;
public class Headers {
@JsonProperty("x-forwarded-proto")
public String xForwardedProto;
@JsonProperty("x-forwarded-port")
public String xForwardedPort;
@JsonProperty("host")
public String host;
@JsonProperty("x-amzn-trace-id")
public String xAmznTraceId;
@JsonProperty("user-agent")
public String userAgent;
@JsonProperty("accept")
public String accept;
@JsonProperty("postman-token")
public String postmanToken;
@JsonProperty("accept-encoding")
public String acceptEncoding;
@JsonProperty("cookie")
public String cookie;
public Headers(String xForwardedProto, String xForwardedPort, String host, String xAmznTraceId, String userAgent, String accept, String postmanToken, String acceptEncoding, String cookie) {
this.xForwardedProto = xForwardedProto;
this.xForwardedPort = xForwardedPort;
this.host = host;
this.xAmznTraceId = xAmznTraceId;
this.userAgent = userAgent;
this.accept = accept;
this.postmanToken = postmanToken;
this.acceptEncoding = acceptEncoding;
this.cookie = cookie;
}
public String getxForwardedProto() {
return xForwardedProto;
}
public void setxForwardedProto(String xForwardedProto) {
this.xForwardedProto = xForwardedProto;
}
public String getxForwardedPort() {
return xForwardedPort;
}
public void setxForwardedPort(String xForwardedPort) {
this.xForwardedPort = xForwardedPort;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getxAmznTraceId() {
return xAmznTraceId;
}
public void setxAmznTraceId(String xAmznTraceId) {
this.xAmznTraceId = xAmznTraceId;
}
public String getUserAgent() {
return userAgent;
}
public void setUserAgent(String userAgent) {
this.userAgent = userAgent;
}
public String getAccept() {
return accept;
}
public void setAccept(String accept) {
this.accept = accept;
}
public String getPostmanToken() {
return postmanToken;
}
public void setPostmanToken(String postmanToken) {
this.postmanToken = postmanToken;
}
public String getAcceptEncoding() {
return acceptEncoding;
}
public void setAcceptEncoding(String acceptEncoding) {
this.acceptEncoding = acceptEncoding;
}
public String getCookie() {
return cookie;
}
public void setCookie(String cookie) {
this.cookie = cookie;
}
}
package TestAPI;
import dev.failsafe.internal.util.Assert;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Type;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
public class tests {
private static String url = "https://postman-echo.com/get";
@Test
public void statusTestGet(){
RestAssured
.given()
.contentType(ContentType.JSON)
.baseUri(url)
.when()
.get()
.then()
.assertThat()
.statusCode(200);
}
@Test
public void checkHeaderGet() {
Headers header = RestAssured
.given()
.when()
.contentType(ContentType.JSON)
.get(url)
.then()
.extract().body().jsonPath().getObject("headers",Headers.class);
System.out.println(header.getxForwardedProto());
System.out.println(header.getxAmznTraceId());
System.out.println(header.getxForwardedPort());
System.out.println(header.getCookie());
System.out.println(header.getHost());
System.out.println(header.getAccept());
System.out.println(header.getAcceptEncoding());
// assertAll(
// () -> assertEquals("https", header.getxForwardedProto(), "значение 'x-forwarded-proto' не совпадает"),
// () -> assertEquals("443", header.getxForwardedPort(), "значение 'x-forwarded-port' не совпадает"),
// () -> assertEquals("postman-echo.com", header.getHost(), "значение 'host' не совпадает"),
// () -> assertEquals("*/*", header.getAccept(), "значение 'accept' не совпадает")
// () -> assertNotNull(header.getxAmznTraceId(),"Поле 'x-amzn-trace-id' пустое"),
// () -> assertNotNull(header.getPostmanToken(),"Поле 'postman-token' пустое"),
// () -> assertNotNull(header.getCookie())
// );
}
}
{
"args": {},
"headers": {
"x-forwarded-proto": "https",
"x-forwarded-port": "443",
"host": "postman-echo.com",
"x-amzn-trace-id": "Root=1-65d08e3c-485b698d614df99204bd202f",
"user-agent": "PostmanRuntime/7.36.3",
"accept": "*/*",
"postman-token": "79de093d-6bbe-4d88-93ea-5d5c63d8ffb3",
"accept-encoding": "gzip, deflate, br"
},
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Lesson-16</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.6.1</version>
<type>maven-plugin</type>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.17.0</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>5.4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
</project>


