Это зависит от того, что вы после. предложение Мануэля boost :: asio :: ip :: tcp :: iostream - это хорошо, если вы хотите что-то на более низком уровне, напрямую возвращая «сырой» ответ сервера (однако я подозреваю, что чего-то не хватает в примере, приведенном в его ответе: Я думаю, что запрос «GET» должен быть записан в поток перед чтением из него. См. этот пример из документов Asio).
У меня нет опыта работы с java.net.URL.openStream (), но кажется, что он находится на немного более высоком уровне, поскольку возвращает только тело (а не заголовки) ответа, заботится о перенаправлениях HTTP и т.д. В таком случае, да, libcurl может быть больше, чем вы хотите. Вы также можете взглянуть на библиотеку cpp-netlib , которая построена поверх Boost.Asio. Он все еще находится в зачаточном состоянии, но его http :: client , похоже, уже обеспечивает нечто, очень похожее на то, что обеспечивается Java URL.openStream ()