Помощь с wxCURL
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Помощь с wxCURL
Здравствуйте. В общем, понадобилось мне в приложении качать файл по https. wxURL не может в https, поэтому погуглив я наткнулся на wxCURL. Скачал, скомпилил (хоть и не с первого раза), но вот что дальше? Посмотрел сэмплы, которые шли с либой, но так и не увидел, как можно скачать что-то по https. Т.е. по http попробовал, скачал, все нормально. А вот для того что надо, как я понял, надо использовать wxCurlDAV. Однако не нашел нигде ни нормального описания функций, ни внятных примеров использования. Собственно, может кто-то показать пример кода, как можно скачать файл по прямой https ссылке?
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: Помощь с wxCURL
Пошел смотреть исходники. Вижу что в дистрибе wxCURL есть сорцы libcurl, а в configure файле wxCURL есть проверка на поддержку SSL в libcurl.
Получается, для HTTPS, судя по всему, надо чтобы libcurl был собран с libopenssl. В дефолтном конфиге это вроде отключено.
Как минимум, надо это включить и сделать так, чтобы при сборке wxCURL и libcurl были использованы либы и заголовки от OpenSSL. Бинарники вроде можно скачать, но я точно уже не помню, там есть версия, собранная с последней VS или нет, может надо будет сначала libopenssl собрать руками.
И вот, собираем libopenssl, включаем поддержку SSL в libcurl, собираем libcurl, подсовывая ей наши собранные файлы libopenssl, собираем wxCURL, дальше для HTTPS используем тот же код, что и для HTTP.
Вроде так.
Code: Select all
if test x$libcurl_feature_SSL = xyes ; then
_libcurl_protocols="$_libcurl_protocols HTTPS"
# FTPS wasn't standards-compliant until version
# 7.11.0
if test $_libcurl_version -ge 461568; then
_libcurl_protocols="$_libcurl_protocols FTPS"
fi
fi
Code: Select all
/* Define if you have the <ssl.h> header file. */
/* #define HAVE_SSL_H 1 */
И вот, собираем libopenssl, включаем поддержку SSL в libcurl, собираем libcurl, подсовывая ей наши собранные файлы libopenssl, собираем wxCURL, дальше для HTTPS используем тот же код, что и для HTTP.
Вроде так.
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Re: Помощь с wxCURL
Ну, тогда еще стоит упомянуть, что при сборке libcurl (в виде dll) пропущена зависимость от ldap (ЕМНИП), а потом при сборке wxCURL ругалось на какую-то функцию в одном из заголовочных файлов wxWidgets (конкретнее не помню, но решилось добавлением перед std:: перед вызовом).
Собирал с помощью MinGW 5.1 (который TDM-GCC).
А есть где-то пример кода с пояснениями для HTTP, в таком случае?
Собирал с помощью MinGW 5.1 (который TDM-GCC).
А есть где-то пример кода с пояснениями для HTTP, в таком случае?
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Re: Помощь с wxCURL
Если не сложно, помоги, пожалуйста, со сборкой libcurl с поддержкой SSL под винду с помощью MinGW. А то у меня руки-крюки совсем =\
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: Помощь с wxCURL
Не обещаю. Сейчас без MinGW живу, на VS только. Напомни plz в воскресенье, если я сам не отпишу.
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Re: Помощь с wxCURL
Эт самое. Напоминаю в воскресенье)
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Re: Помощь с wxCURL
Кстати. А вот такой вопрос еще. Зачем в wxCurlHTTP, логин и пассворд в конструкторе? И от чего, собственно, эти логин и пасс?
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Re: Помощь с wxCURL
Я так понимаю, BA не обязательна? Ее можно как-то отключить? Или просто оставить логин и пароль пустыми?
И как там с libcurl с поддержкой SSL? Есть что-то?
И как там с libcurl с поддержкой SSL? Есть что-то?
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: Помощь с wxCURL
Судя по документации, логин с паролем можно не указывать.
Со сборкой - в процессе, но есть смысл особо меня не ждать, потому что это будет не очень быстро.
Со сборкой - в процессе, но есть смысл особо меня не ждать, потому что это будет не очень быстро.
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: Помощь с wxCURL
Что-то сборка с MinGW это таки да, нетривиальная задача. Та версия libcurl, которая в дистрибе wxCURL, либо урезанная, либо старая, пока подружить с OpenSSL у меня не получилось. Как минимум, с 1.1.0b оно не собирается.
Последняя версия libcurl с оффсайта у меня вываливается посредине компиляции и пока нет ни возможности ни желания ковыряться в Makefile, сорри.
Вот вижу тут есть бинарники собранные с SSL
http://www.paehl.com/open_source/?CURL_7.50.2
Рекомендую скачать статик либы, DLL отсюда, и сорцы вот отсюда (той же версии, что и собранное)
https://curl.haxx.se/download.html
Потом при сборке wxCURL попорбовать подложить инклуды и либы скачанные и посмотреть, что получится.
Последняя версия libcurl с оффсайта у меня вываливается посредине компиляции и пока нет ни возможности ни желания ковыряться в Makefile, сорри.
Вот вижу тут есть бинарники собранные с SSL
http://www.paehl.com/open_source/?CURL_7.50.2
Рекомендую скачать статик либы, DLL отсюда, и сорцы вот отсюда (той же версии, что и собранное)
https://curl.haxx.se/download.html
Потом при сборке wxCURL попорбовать подложить инклуды и либы скачанные и посмотреть, что получится.
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Re: Помощь с wxCURL
Я тут немножко пропал.
В общем, скачал бинарники по первой ссылке, закинул в wxcurl/thirdparty/curl/lib, удалил из мэйкфайла сборку thirdparty, собрал wxcurl, попробовал скомпилить пример (wxcurl/samples/dialogs), скомпилировалось, но вываливается с ошибкой "0xc000007b" при запуске. Как я понял, где-то что-то не так собралось? Собирал с флагами CXXFLAGS="std=gnu++11" WX_VERSION=30 WX_SHARED=1
В общем, скачал бинарники по первой ссылке, закинул в wxcurl/thirdparty/curl/lib, удалил из мэйкфайла сборку thirdparty, собрал wxcurl, попробовал скомпилить пример (wxcurl/samples/dialogs), скомпилировалось, но вываливается с ошибкой "0xc000007b" при запуске. Как я понял, где-то что-то не так собралось? Собирал с флагами CXXFLAGS="std=gnu++11" WX_VERSION=30 WX_SHARED=1
Re: Помощь с wxCURL
Dobrogo vremeni sutok,
U menja vopros (moget dage i ne po teme) - a zachem ispolzovat wxCURL? Nelzya li prosto skachat CURL i ispolzovat normalnyju biblioteku?
CURL ona toge cross-platform library...
U menja vopros (moget dage i ne po teme) - a zachem ispolzovat wxCURL? Nelzya li prosto skachat CURL i ispolzovat normalnyju biblioteku?
CURL ona toge cross-platform library...
-
- Earned a small fee
- Posts: 18
- Joined: Sun May 08, 2016 3:45 pm
Re: Помощь с wxCURL
Вот я щас посидел, погуглил и как-то тоже пришел к такому выводу. Поиспользую, наверное, curl