Рубрики
Без рубрики

Использование Curl в Java

Узнайте, как использовать инструмент curl в программе Java.

Автор оригинала: baeldung.

1. Обзор

В этом уроке мы рассмотрим, как использовать инструмент curl в программе Java.

Curl – это сетевой инструмент, используемый для передачи данных между сервером и curl клиентом с использованием таких протоколов, как HTTP, FTP, TELNET и SCP.

2. Основное использование локона

Мы можем выполнить локон команды из Java с помощью ProcessBuilder ProcessBuilder Процесс класс.

Давайте рассмотрим пример отправки команд непосредственно в операционную систему:

String command =
  "curl -X GET https://postman-echo.com/get?foo1=bar1&foo2=bar2";
ProcessBuilder processBuilder = new ProcessBuilder(command.split(" "));

Сначала мы создаем переменную command , прежде чем передать ее конструктору ProcessBuilder .

Здесь стоит отметить, что если исполняемый файл curl не находится в вашем системном пути, нам придется указать его полный путь в нашей командной строке.

Затем мы можем установить рабочий каталог для ProcessBuilder и запустить процесс:

processBuilder.directory(new File("/home/"));
Process process = processBuilder.start();

С этого момента мы можем получить InputStream , обратившись к нему из экземпляра Process :

InputStream inputStream = process.getInputStream();

Когда обработка будет завершена, мы сможем получить код выхода с помощью:

int exitCode = process.exitValue();

Если нам нужно выполнить дополнительные команды, мы можем повторно использовать ProcessBuilder ProcessBuilder Строка массив:

processBuilder.command(
  new String[]{"curl", "-X", "GET", "https://postman-echo.com?foo=bar"});

Наконец, чтобы завершить каждый экземпляр Process , мы должны использовать:

process.destroy();

3. Простая альтернатива ProcessBuilder

В качестве альтернативы использованию класса ProcessBuilder мы можем использовать Runtime.getRuntime() для получения экземпляра класса Process .

Давайте посмотрим еще один пример команды curl – на этот раз с помощью POST запроса:

curl -X POST https://postman-echo.com/post --data foo1=bar1&foo2=bar2

Теперь давайте выполним команду с помощью метода Runtime.getRuntime() :

String command = "curl -X POST https://postman-echo.com/post --data foo1=bar1&foo2=bar2";
Process process = Runtime.getRuntime().exec(command);

Во-первых, мы снова создаем экземпляр класса Process , но на этот раз с помощью Runtime.getRuntime() . Мы можем получить InputStream , как в нашем предыдущем примере, вызвав метод getInputStream() :

process.getInputStream();

Когда экземпляр больше не нужен, мы должны освободить системные ресурсы, вызвав метод destroy () .

4. Заключение

В этой статье мы показали два способа использования curl в Java.

Этот и другие примеры кода доступны на GitHub.