Как я могу использовать Http Client API(начиная с Java 9) в проекте Java8
Java 9 импортирует новый клиентский API HTTP/2, который кажется полезным, но есть ли способ использовать его в Java 8?
ИЛИ ЖЕ
Есть ли shim
/polyfill
(из javascript) доступно, чтобы сделать его доступным в Java 8?
2 ответа
Есть ли способ использовать его в Java 8?
Нет, потому что jdk.incubator.http
модуль был добавленс Java 9.
Так что было бы невозможно скомпилировать его с --release 8
Опция работы компилятора с Java8. В конечном итоге вы получите ошибки как:
$ javac --release 8 .../src/com/HttpGet.java $ .../src/com/HttpGet.java:3: error: package jdk.incubator.http does not exist import jdk.incubator.http.HttpClient; ^
С минимальным кодом, чтобы воспроизвести это как:
import jdk.incubator.http.HttpClient;
public class HttpGet {
public static void main(String[] args) {
HttpClient httpClient = HttpClient.newBuilder().followRedirects(HttpClient.Redirect.ALWAYS).build();
System.out.println(httpClient.version());
}
}
Более того, документация четко гласит это заранее
Инкубационная особенность.Будет удален в будущем выпуске.
В принципе, источник для него доступен. Вы можете скопировать его, скомпилировать и создать jar-файл, пригодный для использования с Java 8 (возможно, с некоторыми изменениями или отсутствующими функциями, если код требует где-то Java 9), аналогично ThreeTen-Backport java.time
для Java 6/7.
Но, кажется, пока нет ни одного доступного (после быстрого поиска). Если вы решили пойти в этом направлении, обязательно следуйте соответствующим лицензиям.