альтернативный способ для CURL для HTTP потокового API в Java - PullRequest
0 голосов
/ 22 октября 2019

Я очень новичок и сейчас пытаюсь подключить API поддержки потоковой передачи http в java, поэтому я нашел очень простой способ с cURL непрерывно печатать потоковое сообщение в консоли:

    public static void main(String[] args) throws UnknownHostException, IOException {

        String[] command = { "curl", "--silent", "-u", "username:password",
                "https://host.com/" };
        ProcessBuilder builder = new ProcessBuilder(command);
        builder.redirectErrorStream(true);
        String line = "";

        try {
            Process process = builder.start();
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
            while (true) {
                line = br.readLine();
                if (line == null) {
                    break;
                }
                System.out.println(line);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

серверу требуется только аутентификация (т. е. имя пользователя: пароль) для установления соединения, и он периодически отправляет сообщение keep-alive, которое \ r \ n предотвращает автоматическое закрытие соединения.
, поэтому, когда есть фактические данные, доступные дляpush to client, будет похоже на

\r\n
{ ... some message ... }
\r\n
\r\n

Я хочу изучить альтернативный способ заставить его работать с другими библиотеками
Дело в том, что я знаю, как сделать традиционный запрос http-ответа, хотя мой вопроскак сохранить соединение долгое время и продолжать читать push-данные с сервера, в идеале также записать в базу данных
, если бы вы могли указать мне несколько ключевых слов о том, как переписать код более эффективным или более разумным способом, чтобыбыло бы очень полезно, спасибо!

...