Как относительный новичок в мире Java, я нахожу множество вещей, которые разочаровывающе глупы для выполнения, которые относительно тривиальны во многих других средах. Основной пример - простое решение для асинхронных HTTP-запросов. Видя, что человек, кажется, уже не существует, каков наилучший подход? Создание собственных потоков с использованием блокирующего типа lib, такого как httpclient или встроенного Java-содержимого http, или использование более нового неблокирующего io-содержимого Java - это кажется особенно сложным для чего-то, что должно быть простым.
То, что я ищу, - это что-то простое в использовании с точки зрения разработчика - что-то похожее на URLLoader в AS3 - где вы просто создаете URLRequest - присоединяете несколько обработчиков событий для обработки завершения, ошибок, прогресса и т. Д. и вызвать метод для его запуска.
Если вы не знакомы с URLLoader в AS3, это так просто и выглядит примерно так:
private void getURL(String url)
{
URLLoader loader = new URLLoader();
loader.addEventListener(Event.Complete, completeHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
URLRequest request = new URLRequest(url);
// fire it off - this is asynchronous so we handle
// completion with event handlers
loader.load(request);
}
private void completeHandler(Event event)
{
URLLoader loader = (URLLoader)event.target;
Object results = loader.data;
// process results
}
private void httpStatusHandler(Event event)
{
// check status code
}
private void ioErrorHandler(Event event)
{
// handle errors
}