Я очень новичок в Java и всей его славе.Как создать постоянное соединение https
Использование HttpsUrlConnection, я могу выполнять большинство операций REST без особых проблем. Однако, как мне заняться созданием постоянного соединения Https? Мне нужно это соединение для асинхронных сообщений с сервера. Есть ли простое java-решение, которое использует только пакет java.net? Я не ищу элегантное решение, просто что-то простое и работаю.
Вот что я до сих пор и не могу ничего получить от сервера. У меня есть статус 200 в ответ, но после этого ничего не получилось. Я проверил, что сервер фактически отправляет асинхронные сообщения. Я могу получить их с помощью другого инструмента. (с использованием запроса python с потоком)
До этого кода я успешно вошел в систему и получил все необходимые файлы cookie и authToken. Менеджер Cookie включен. ДополнительноAuthToken (conn) заботится о добавлении необходимого материала авторизации. Это доказало свою работу в другом вызове REST, поэтому я не подозреваю, что это проблема. Опять же, если авторизация была проблемой, у сервера не было бы возврата 200.
URL obj = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();
conn.setRequestProperty("Connection", "keep-alive");
conn.setRequestMethod("GET");
additionalAuthToken(conn);
conn.setDoOutput(true);
conn.setDoInput(true);
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
System.out.println(url);
System.out.println(conn.getResponseMessage());
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while(true) {
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
Thread.sleep(100);
System.out.println("Go around");
}
Возможно ли это? если нет, какова ваша рекомендация по достижению постоянного канала https? Я слышал о netty и некоторых других результатах Google. На данный момент я действительно надеюсь на простое решение java.net, не имея другой зависимости.
С уважением, Тай
Следуйте на всякий случай, если кто-то ищет ответ. Он работает. Это действительно работает. Проблема в том, что я получил код в отдельной функции, которая закрывает поток и возвращает. Пока задайте вопрос, я перемещаю этот код здесь и не закрываю BufferReader. Итак, теперь я получаю устойчивое асинхронное сообщение. Таким образом, мораль этой истории заключается не в том, чтобы закрыть поток. Этот код действительно работает. – user2019842