Асинхронный HTTP-запрос в Java

Как отправить асинхронный HTTP-запрос GET/POST в Java без ожидания / чтения ответа? Я не хочу использовать сторонние библиотеки..

3 ответа

Решение

Если вы вообще не заинтересованы в чтении ответа, вы можете просто использовать URL.openStream() для создания соединения, а затем сразу же закрыть сокет (или проигнорировать его и дать ему время, если вы хотите быть злым для сервера). Это не является строго асинхронным, но это будет немного быстрее, чем любой подход, основанный на получении и анализе ответа сервера.

Конечно, это можно сделать асинхронным путем разгрузки openStream() вызовы в другой поток, вручную или с помощью утилит, доступных в java.util.concurrent,

java.util.concurrent может быть использован.

Если вы заинтересованы в использовании сторонних библиотек, вы можете взглянуть на

Async Http Client

Я бы предложил использовать что-то вроде Jetty HttpClient, если вы не против добавить библиотеки Jetty в свое приложение. Вот хороший пример с вики-страницы Jetty http://wiki.eclipse.org/Jetty/Tutorial/HttpClient.

Другие вопросы по тегам