После лота поиска следуют следующие шаги:
Использовал Wireshark для перехвата вызовов почтальона и API с гарантией отдыха.
Вызов API Почтальона содержит следующие значения:
GET /api/0.3/?cmd=getTrims&make=Abarth&year=1955&model=207 HTTP / 1.1 \ r \ n
контроль кэша: без кэширования \ r \ n
Почтальон-токен: c70faee6-f00c-47b6-9c6a-bb1c4ffe5cf4 \ r \ n
Пользователь-агент: PostmanRuntime / 7.6.0 \ r \ n
Примите: / \ r \ n
cookie: __cfduid = dcce85c35c3e5eb33524b0a1a79b6bf2b1548159374 \ r \ n
принять кодировку: gzip, deflate \ r \ n
реферер: https://carqueryapi.com/api/0.3/?cmd=getTrims&make=Abarth&year=1955&model=207\r\n
Хост: www.carqueryapi.com \ r \ n
Соединение: keep-alive \ r \ n
\ г \ п
[URI полного запроса: http://www.carqueryapi.com/api/0.3/?cmd=getTrims&make=Abarth&year=1955&model=207]
[HTTP-запрос 1/1]
[Ответ в рамке: 350]
Вызов API Rest-Assured содержит следующие значения:
GET /api/0.3/?cmd=getTrims&make=Abarth&year=1955&model=207 HTTP / 1.1 \ r \ n
Примите: / \ r \ n
Хост: www.carqueryapi.com \ r \ n
Подключение: Keep-Alive \ r \ n
Пользователь-агент: Apache-HttpClient / 4.5.3 (Java / 1.8.0_171) \ r \ n
Accept-Encoding: gzip, deflate \ r \ n
\ г \ п
[URI полного запроса: http://www.carqueryapi.com/api/0.3/?cmd=getTrims&make=Abarth&year=1955&model=207]
[HTTP-запрос 1/1]
[Ответ в рамке: 769]
Замечание:
Значение заголовка User-Agent было другим. И API блокировал запросы для Apache-HttpClient , но с учетом PostmanRuntime / 7.6.0 .
Обновлен код для заголовка User-Agent со значением PostmanRuntime / 7.6.0 , и все заработало.
Ниже работает код:
package com.type.GetFuelTypeFromAPI;
import static io.restassured.RestAssured.given;
import java.net.MalformedURLException;
import java.net.URL;
import org.testng.annotations.Test;
import io.restassured.response.Response;
public class SampleGetAPI {
@Test
public void getDetails() throws MalformedURLException {
Response response=
given()
.header("User-Agent", "PostmanRuntime/7.6.0")
.queryParam("cmd", "getTrims")
.queryParam("make", "Abarth")
.queryParam("year", "1955")
.queryParam("model", "207")
.when()
.get(new URL("https://carqueryapi.com/api/0.3/"));
String responseBody = response.body().asString();
System.out.println(responseBody);
}
}