Скачать URL на C ++

Я хочу иметь возможность загружать URL в C ++. Что-то простое, как:

std::string s;
s=download("http://www.example.com/myfile.html");

В идеале это должно включать URL-адреса, такие как:

ftp://example.com/myfile.dat file:///usr/home/myfile.dat https://example.com/myfile.html

Я использовал asio в Boost, но на самом деле в нем не было кода для обработки протоколов, таких как ftp и https. Теперь я обнаружил, что QT имеет больше того, что мне нужно (http://doc.trolltech.com/2.3/network.html).

Соблазнительно переключиться на Qt, но он кажется немного тяжелым и пересекает большую часть функциональности Boost. Стоит ли изучать еще один API (Qt) или Boost может сделать больше, чем я думаю?

Ответы на вопрос(5)

так как это на самом деле не так уж и впечатляюще; Есть много недостающих частей. Я переключаюсь только в том случае, если вам нужен графический интерфейс, для которого он на высшем уровне.

libCURL довольно прост в использовании и более надежен, чем Qt.

Poco Project есть классы для кросс-платформенного HTTP и FTP (и много других вещей). Есть наложение с бустом. Я недавнонайденный это, но не использовал его.

Решение Вопроса

Libcurl, что почти точно, что вы описываете.

Есть примеры приложенийВоти, в частности,этот демонстрирует, насколько простым может быть использование.

 25 февр. 2013 г., 09:28
Можете ли вы включить пример кода?
 09 янв. 2015 г., 09:24
@ Джо, у вас есть пример (в C), скомпилированный с MinGW для Windows? Мне нужен этот же пример для окон, использующих MinGW.
 09 янв. 2015 г., 13:54
Обновлена ссылка на & quot; simple.c & quot; который переехал.
 15 июл. 2009 г., 05:12
+1 за libCURL. Он построен именно для этого. Это скорее прямое связывание с С (имеется обертка С ++; его не использовали).

URLDownloadToFile или жеURLOpenBlockingStream, хотяcURL, libcurl являются подходящими инструментами для такого рода работ.

 22 авг. 2018 г., 06:13
Кстати, вы знаете сферу того, что это поддерживает, с точки зрения таких вещей, как SSL, HTTP 2, куки, сеансы и все такое?
 22 авг. 2018 г., 16:42
Ха-ха, IE3 ... Но да, я вроде как понял из документации: функции вродеURL___ похоже, являются основными абстракциями остальной части "URL Monikers" API.
 22 авг. 2018 г., 06:12
Спасибо за упоминание URLOpenBlockingStream! Я не смог найти там ни одной хорошей документации, кроме рудиментарных материалов в MSDN, но наконец-то понял (см. Мой ответ).
 22 авг. 2018 г., 11:12
@ Андрей, привет. Документы говорят, чтоURLOpenBlockingStream требует IE3, поэтому он, вероятно, поддерживает те же вещи. Например, см.IE3 encryption, Я не думаюURLOpenBlockingStream поддерживает куки и сессии.

https://stackoverflow.com/a/51959694/1599699

Особая благодарностьНик Дандулакис за предложение URLOpenBlockingStream! Мне это нравится.

Ваш ответ на вопрос