On-line: Andrey, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 315
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 19.01.22 13:50. Заголовок: libcurl в Harbour, возможно ли?


Я уже довольно поработал с включением curl, а также httpie в программу. Хотелось бы попробовать включить это прямо через библиотеку, чтобы не плодить зависимые EXEшники, на стыках между которыми появляются ошибки. Подскажите, пожалуйста, где найти libcurl для Harbour с мануалами?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 34 , стр: 1 2 All [только новые]


moderator


Пост N: 1468
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 21.01.22 14:08. Заголовок: Libcurl - на сайте c..


Libcurl - на сайте curl: https://curl.se/, там и мануалы.
А libcurl для Harbour - hbcurl - если собираете Harbour из исходников, то надо прописать HB_WITH_CURL.
Пример использования - в harbour/contrib/hbcurl/tests.
И еще: у команды curl есть такая полезная опция --libcurl имя_файла - после исполнения в файл записывается инструкция, какие вызовы libcurl надо использовать, чтобы получить тот же результат, что у команды.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 316
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 16:31. Заголовок: Спасибо за ответ! В..


Спасибо за ответ!
Вопрос:
1) Какие исходники и где качать? А то версия от 2011 года ИМХО старовата.
2) Потом туда надо ещё MINIGUI запихнуть. До этого он у меня был на Борланде. А тут MinGW

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7536
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 16:33. Заголовок: Dr. Oldwarez Можно ..


Dr. Oldwarez
Можно попробовать поиск на форуме по слову libcurl , вдруг будет ответ...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 317
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 17:22. Заголовок: Итак, исходники зака..


Итак, исходники закачаны.
Тогда вопрос, чем компилировать - MinGW или BCC? И где прописывать это HB_WITH_CURL?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7537
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 17:40. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
И где прописывать это HB_WITH_CURL?


У меня такой батник под MIGW и живет в .......core-master\contrib\hbcurl\
 
set PATH=%PATH%;C:\MinGW12\bin;c:\hb32mingw19\bin\
set HB_WITH_CURL=c:\curl\781\include
set HB_STATIC_CURL=yes
c:\hb32mingw19\bin\hbmk2 hbcurl


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 318
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 18:30. Заголовок: Итак, в скачанном би..


Итак, в скачанном бинарном дистре c:\hb32\lib\win\mingw уже наличествуют libhbcurl.a и libhbcurl_dll.a

иду в c:\hb32\contrib\hbcurl\tests и собираю там пример.

c:\hb32\contrib\hbcurl\tests>c:\hb32\bin\hbmk2 ftp_uldl

В итоге оно всё равно требует какие-то левые библиотеки libcurl-4.dll, libcrypto.dll и libssl.dll

Какие ещё ключи нужны, чтобы оно не клянчило этих библиотек?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7538
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 18:52. Заголовок: Должны быть под Ming..


Должны быть под Mingw
libcurl.a
libcurl.dll.a
libhbcurl.a
libhbcurls.a
liblibcurl.a
+ libcurl.dll

Dr. Oldwarez пишет:

 цитата:
libcrypto.dll и libssl.dll


HbSsl еще надо собрать
В новом варианте уже вот такие нужны
libcrypto-1_1.dll libssl-1_1.dll

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7539
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 19:06. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
уже наличествуют libhbcurl.a и libhbcurl_dll.a


может они древние просто

тут точно свежие
https://curl.se/windows/

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7540
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 19:16. Заголовок: я тут смотрю changel..


я тут смотрю changelog на MiniGui и наблюдаю вот такую строку
* Updated: HbCurl library:
- update for using Curl package version 7.66.0 (10 Sep 2019).
Contributed by Grigory Filatov <gfilatov@inbox.ru>
Так что наверное с MinGW можно и не париться

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 319
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 19:23. Заголовок: Dima пишет: HbSsl е..


Dima пишет:

 цитата:
HbSsl еще надо собрать



А их как собрать?
У меня выдаёт
hbmk2[hbssls]: Warning: Missing dependency: openssl

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7541
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 19:27. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
openssl


качнуть его надо
http://slproweb.com/products/Win32OpenSSL.html

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7542
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 19:30. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
А их как собрать?


set path=C:\MinGW12\bin\
SET HB_WITH_OPENSSL=C:\OpenSSL-Win32_11\include
c:\hb32mingw19\bin\hbmk2 hbssl.hbp

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 320
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 19:55. Заголовок: Dima пишет: я тут с..


Dima пишет:

 цитата:
я тут смотрю changelog на MiniGui и наблюдаю вот такую строку
* Updated: HbCurl library:
- update for using Curl package version 7.66.0 (10 Sep 2019).
Contributed by Grigory Filatov <gfilatov@inbox.ru>
Так что наверное с MinGW можно и не париться


Да, я тут глянул в свой старый добрый MiniGUI - сразу нашёл и hbcurl и hbssl. Теперь только один вопрос: как заставить компилятор подхватывать эти библиотеки? Поставил самой первой строкой require hbcurl - не помогает.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7543
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 20:29. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
require hbcurl


так require вроде ж ни чего и не делает
если батником сборка и это минигуи то можно примеры посмотреть
ну вот к примеру как указать либу
call ..\..\..\batch\compile.bat demo /l hbdll32 %1 %2 %3 %4 %5 %6 %7 %8 %9
для SSL в сырец надо добавить
REQUEST __HBEXTERN__HBSSL__

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 321
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 20:43. Заголовок: Dima пишет: если ба..


Dima пишет:

 цитата:
если батником сборка и это минигуи то можно примеры посмотреть
ну вот к примеру как указать либу
compile.bat demo /l hbdll32 %1 %2 %3 %4 %5 %6 %7 %8 %9
для SSL в сырец надо добавить
REQUEST __HBEXTERN__HBSSL__



Как залинковать ДВЕ библиотеки?
call ..\..\..\batch\compile.bat myprog /l libcurls /l libcurl

Выдаёт вот что
 
Error: Unresolved external '_curl_global_init_mem' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_global_cleanup' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_formfree' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_cleanup' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_reset' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_duphandle' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_init' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_pause' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_perform' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_send' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_recv' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_formadd' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_slist_append' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_setopt' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_getinfo' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_slist_free_all' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_escape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_unescape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_version' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_version_info' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_easy_strerror' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_getdate' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_escape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_unescape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core
Error: Unresolved external '_curl_free' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7544
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 20:56. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Как залинковать ДВЕ библиотеки?


а это BCC или MinGw ?
Если BCC по идее нужны эти
libcurl.lib hbcurls.lib hbcurl.lib
а вот эта (не уверен) hbcurls.lib нужна если еще HBSSL юзаем

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 322
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 20:56. Заголовок: Dima пишет: а это B..


Dima пишет:

 цитата:
а это BCC или MinGw ?


BCC

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7545
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 21:00. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Как залинковать ДВЕ библиотеки?


как то так
call ..\..\..\batch\compile.bat BTExp2 %1 /l hmg_hpdf /l hbhpdf /l libhpdf /l png /l hbzlib %2 %3 %4 %5 %6 %7 %8 %9

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 323
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 21:07. Заголовок: Так и сделал, а всё ..


Так и сделал, а всё равно те же Unresolved external. Что-то ещё туда залинковать надо...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7546
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.01.22 22:06. Заголовок: BCC какой 55 или 58 ..


BCC какой 55 или 58 ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 324
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.01.22 22:07. Заголовок: Dima пишет: BCC как..


Dima пишет:

 цитата:
BCC какой 55 или 58 ?


BCC58

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7547
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.01.22 00:02. Заголовок: Dr. Oldwarez Все ра..


Dr. Oldwarez
Все работает по ходу , внимательнее наверное надо быть
Счас пример будет , собирается и пашет

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7548
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.01.22 00:05. Заголовок: Compile.bat call ....


 
Compile.bat
call ..\..\..\batch\compile.bat demo %1 /c /l hbcurl /l libcurl %2 %3 %4 %5 %6 %7 %8 %9


 
Demo.prg

#include "hbcurl.ch"


PROCEDURE Main
Test()
wait
return nil

Func Test()
LOCAL curl
LOCAL info
LOCAL tmp
LOCAL tmp1
LOCAL f
LOCAL a

LOCAL lVerbose := .F.

? curl_version()
? curl_getdate( "Sun, 1 Jun 2008 02:10:58 +0200" )

info := curl_version_info()

FOR tmp := 1 TO Len( info )
IF tmp == 8
? tmp, ""
FOR tmp1 := 1 TO Len( info[ 8 ] )
?? info[ 8 ][ tmp1 ] + " "
NEXT
ELSE
? tmp, info[ tmp ]
ENDIF
NEXT
return nil

+ должны быть доступны
hbcurl.ch libcurl.dll

PS
Остальные "штуки" где нужен curl_global_init() curl_easy_init() сам уже чекай

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 325
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 25.01.22 00:59. Заголовок: Dima пишет: + должн..


Dima пишет:

 цитата:
+ должны быть доступны
hbcurl.ch libcurl.dll


А где эту libcurl.dll и libssl.dll скачать?

В остальном оно уже закомпилировалось. Теперь dllки спрашивает.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7549
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.01.22 10:15. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
libssl.dll


Да это и не надо вовсе для сборки , у меня нет такой DLL в папке с примером да и вообще и работает
LibCurl.dll есть в этом архиве https://curl.se/windows/dl-7.81.0/curl-7.81.0-win32-mingw.zip
alkresin выше про это писал , если читал конечно

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1469
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.01.22 11:02. Заголовок: Сделал маленький при..


Сделал маленький пример: http://www.kresin.ru/down/testcurl.zip - скачивание страницы.
Для bcc 5.5.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 326
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 25.01.22 11:35. Заголовок: Dima пишет: Dr. Old..


Dima пишет:

 цитата:
Dr. Oldwarez пишет:

 цитата:
libssl.dll


Да это и не надо вовсе для сборки , у меня нет такой DLL в папке с примером да и вообще и работает
LibCurl.dll есть в этом архиве https://curl.se/windows/dl-7.81.0/curl-7.81.0-win32-mingw.zip
alkresin выше про это писал , если читал конечно


Я читал, но та libcurl, которая была в дистре MiniGUI, требовала libssl. Когда взял libcurl из вашей библиотеки, libssl уже не нужна.
Теперь другой вопрос: как в libcurl назначить XML для вывода. Типа

curl -o qwerty.xml

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7550
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.01.22 11:50. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
как в libcurl назначить XML для вывода


"Курить" доку , там и примеры есть
Как вариант "курить" гугл

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 327
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 25.01.22 12:18. Заголовок: Итак, было curl -k -..


Итак, было
curl -k -o qwerty.xml --user USRNAME:PASSWD -X PROPFIND 
"https://webmail.aaabbbb.com/rpc.php/calendars/usrname@aaabbbb.com/calendar~GhGVum1xQexaffEfhiAkMN7/"

Добавил ключ --libcurl

Сгенерилось

Скрытый текст




Я так понимаю, что это должно быть WRITEDATA, но его нет в опциях libcurl, которые я подсмотрел в
HBCURL.CH
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7552
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.01.22 14:07. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
WRITEDATA


Да нет такого......но может быть сайту можно как то сказать заранее что данные передавать в XML..

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1470
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.01.22 14:25. Заголовок: Если надо именно зад..


Если надо именно задать формат, то это не к curl, это к сайту.
А если надо задать определенный файл для вывода полученных данных, то можно так:

curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
...
cBuff := curl_easy_dl_buff_get( hCurl )
hb_MemoWrite( "some_file.xml", cBuff )

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7554
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.01.22 15:38. Заголовок: -H "Content-Type..


-H "Content-Type: application/xml" что то типа такого для CURL.EXE
а если DLL юзать то в Header надо это правильно вставить , вроде так

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1471
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.01.22 16:23. Заголовок: Dima пишет: -H "..


Dima пишет:

 цитата:
-H "Content-Type: application/xml" что то типа такого для CURL.EXE


А это разве не для отправляемых данных строчка?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7556
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.01.22 16:36. Заголовок: alkresin Да , возмо..


alkresin
Да , возможно я поспешил с правильным ответом......

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 34 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 227
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет