Мне нужно сделать 700 запросов на различные json.
К примеру, если я делаю один из таких запросов, то получение ответа занимает 12 секунд. Соотвественно на все 700 запросов уйдет около 2 часов.
Я использовал библиотеки HtmlUnit(net.sourceforge.htmlunit ) и rest-assured(com.jayway.restassured)
Пример кода на HtmlUnit на два запроса:
WebClient client = new WebClient();
Page page = client.getPage("https://api.privatbank.ua/p24api/exchange_rates?json&date=01.12.2014");
WebResponse response = page.getWebResponse();
Page page2 = client.getPage("https://api.privatbank.ua/p24api/exchange_rates?json&date=02.12.2014");
WebResponse response2 = page2.getWebResponse();
System.out.println(response.getContentAsString());
System.out.println(response2.getContentAsString());
Пример кода на rest-assured на два запроса:
String sURL ="https://api.privatbank.ua/p24api/exchange_rates?json";
Map<String, String> queryParms= new HashMap<>();
queryParms.put("date", String.valueOf("01.12.2014"));
Response response = RestAssured.expect().statusCode(200).given()
.queryParameters(queryParms)
.log().all()
.when()
.get(sURL)
.then().assertThat()
.log().all()
.extract().response();
System.out.println(response.getBody().asString());
String sURL ="https://api.privatbank.ua/p24api/exchange_rates?json";
queryParms.put("date", String.valueOf("02.12.2014"));
Response response = RestAssured.expect().statusCode(200).given()
.queryParameters(queryParms)
.log().all()
.when()
.get(sURL)
.then().assertThat()
.log().all()
.extract().response();
System.out.println(response.getBody().asString());
С другой стороны, если я делаю запрос через браузер на те же адреса, к примеру через Chrome, то запрос происходит мгновенно.
Как на Java делать такие же быстрые запросы?
Как минимум, можно распараллелить отправку запросов, используя асинхронный AsyncHttpClient.
Про саму настройку пула подключений читать тут.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости