Помощь с wxCURL

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Помощь с wxCURL

Postby MizantropLoL » Sun Sep 25, 2016 12:20 am

Здравствуйте. В общем, понадобилось мне в приложении качать файл по https. wxURL не может в https, поэтому погуглив я наткнулся на wxCURL. Скачал, скомпилил (хоть и не с первого раза), но вот что дальше? Посмотрел сэмплы, которые шли с либой, но так и не увидел, как можно скачать что-то по https. Т.е. по http попробовал, скачал, все нормально. А вот для того что надо, как я понял, надо использовать wxCurlDAV. Однако не нашел нигде ни нормального описания функций, ни внятных примеров использования. Собственно, может кто-то показать пример кода, как можно скачать файл по прямой https ссылке?

User avatar
T-Rex
Moderator
Moderator
Posts: 1131
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: Помощь с wxCURL

Postby T-Rex » Wed Sep 28, 2016 12:37 pm

Пошел смотреть исходники. Вижу что в дистрибе wxCURL есть сорцы libcurl, а в configure файле wxCURL есть проверка на поддержку SSL в libcurl.

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

Получается, для HTTPS, судя по всему, надо чтобы libcurl был собран с libopenssl. В дефолтном конфиге это вроде отключено.

Code: Select all

/* Define if you have the <ssl.h> header file.  */
/* #define HAVE_SSL_H 1 */
Как минимум, надо это включить и сделать так, чтобы при сборке wxCURL и libcurl были использованы либы и заголовки от OpenSSL. Бинарники вроде можно скачать, но я точно уже не помню, там есть версия, собранная с последней VS или нет, может надо будет сначала libopenssl собрать руками.
И вот, собираем libopenssl, включаем поддержку SSL в libcurl, собираем libcurl, подсовывая ей наши собранные файлы libopenssl, собираем wxCURL, дальше для HTTPS используем тот же код, что и для HTTP.
Вроде так.

MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Re: Помощь с wxCURL

Postby MizantropLoL » Wed Sep 28, 2016 4:49 pm

Ну, тогда еще стоит упомянуть, что при сборке libcurl (в виде dll) пропущена зависимость от ldap (ЕМНИП), а потом при сборке wxCURL ругалось на какую-то функцию в одном из заголовочных файлов wxWidgets (конкретнее не помню, но решилось добавлением перед std:: перед вызовом).
Собирал с помощью MinGW 5.1 (который TDM-GCC).

А есть где-то пример кода с пояснениями для HTTP, в таком случае?

User avatar
T-Rex
Moderator
Moderator
Posts: 1131
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: Помощь с wxCURL

Postby T-Rex » Thu Sep 29, 2016 7:32 am

Вроде это пример загрузки файлов.

MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Re: Помощь с wxCURL

Postby MizantropLoL » Fri Sep 30, 2016 2:34 pm

Если не сложно, помоги, пожалуйста, со сборкой libcurl с поддержкой SSL под винду с помощью MinGW. А то у меня руки-крюки совсем =\

User avatar
T-Rex
Moderator
Moderator
Posts: 1131
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: Помощь с wxCURL

Postby T-Rex » Fri Sep 30, 2016 5:04 pm

Не обещаю. Сейчас без MinGW живу, на VS только. Напомни plz в воскресенье, если я сам не отпишу.

MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Re: Помощь с wxCURL

Postby MizantropLoL » Sun Oct 02, 2016 12:23 pm

Эт самое. Напоминаю в воскресенье)

MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Re: Помощь с wxCURL

Postby MizantropLoL » Sun Oct 02, 2016 12:42 pm

Кстати. А вот такой вопрос еще. Зачем в wxCurlHTTP, логин и пассворд в конструкторе? И от чего, собственно, эти логин и пасс?

User avatar
T-Rex
Moderator
Moderator
Posts: 1131
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: Помощь с wxCURL

Postby T-Rex » Sun Oct 02, 2016 4:49 pm


MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Re: Помощь с wxCURL

Postby MizantropLoL » Sun Oct 02, 2016 6:30 pm

Я так понимаю, BA не обязательна? Ее можно как-то отключить? Или просто оставить логин и пароль пустыми?

И как там с libcurl с поддержкой SSL? Есть что-то? :roll:

User avatar
T-Rex
Moderator
Moderator
Posts: 1131
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: Помощь с wxCURL

Postby T-Rex » Mon Oct 03, 2016 7:57 am

Судя по документации, логин с паролем можно не указывать.
Со сборкой - в процессе, но есть смысл особо меня не ждать, потому что это будет не очень быстро.

User avatar
T-Rex
Moderator
Moderator
Posts: 1131
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: Помощь с wxCURL

Postby T-Rex » Tue Oct 04, 2016 10:49 am

Что-то сборка с 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 попорбовать подложить инклуды и либы скачанные и посмотреть, что получится.

MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Re: Помощь с wxCURL

Postby MizantropLoL » Wed Nov 30, 2016 2:06 pm

Я тут немножко пропал.
В общем, скачал бинарники по первой ссылке, закинул в wxcurl/thirdparty/curl/lib, удалил из мэйкфайла сборку thirdparty, собрал wxcurl, попробовал скомпилить пример (wxcurl/samples/dialogs), скомпилировалось, но вываливается с ошибкой "0xc000007b" при запуске. Как я понял, где-то что-то не так собралось? Собирал с флагами CXXFLAGS="std=gnu++11" WX_VERSION=30 WX_SHARED=1

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 2058
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: Помощь с wxCURL

Postby ONEEYEMAN » Wed Nov 30, 2016 3:06 pm

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...

MizantropLoL
Earned a small fee
Earned a small fee
Posts: 18
Joined: Sun May 08, 2016 3:45 pm

Re: Помощь с wxCURL

Postby MizantropLoL » Wed Nov 30, 2016 3:59 pm

Вот я щас посидел, погуглил и как-то тоже пришел к такому выводу. Поиспользую, наверное, curl


Return to “wxWidgets Development (Russian)”

Who is online

Users browsing this forum: No registered users and 1 guest