Форум » [x]Harbour » HBCURL » Ответить

HBCURL

Eduard: Dima пишет: [quote]Вот и все непонятки закончились после того как убил кучу времени. У DownloadFile проблема с длинными именами файлов , при чем в UploadFile этой проблемы нет. Не важно каков размер файла , важна для него длина имени файла. Прошу опровергнуть или подтвердить описанное поведение DownloadFile. [/quote] Добрый день. У меня точно такая же проблема нарисовалась в моей программе, как описывает Дима. Программа на отрез не хочет принимать с фтп длинные имена файлов. точь в точь как в этой теме http://clipper.borda.ru/?1-4-0-00000844-000-10001-0 Удалось ли Вам побороть данную проблему.? Как вышли из ситуации? Хочу перейти на HBCURL, но нужно описание всех функций, особенно получение списка файлов с фтп-сервера по маске и скачивание файлов с сервера. Поделитесь своими наработками пожалуйста. П.С. Вот кусок программы, в котором я пытаюсь скачать файлики с сервера, список получаю, а вот файл /файлы / скачать не удается... [more] curl_global_init() IF ! Empty( curl := curl_easy_init() ) DEFAULT cDL TO "ftp://"+ArmFTP+"/" curl_easy_setopt( curl, HB_CURLOPT_DOWNLOAD ) curl_easy_setopt( curl, HB_CURLOPT_DIRLISTONLY) curl_easy_setopt( curl, HB_CURLOPT_USERPWD, ArmLogin+":"+ArmPass ) curl_easy_setopt( curl, HB_CURLOPT_URL, cDL+"OUT"+"/"+ArmPostID+"/"+dt2+"/" ) curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP ) curl_easy_perform( curl ) //DOWNLOAD DIRLIST TO STRING dnfiles:= curl_easy_dl_buff_get( curl ) MsgInfo(dnfiles) curl_easy_reset( curl ) //получаю список файлов на сервере DEFAULT cDL TO "ftp://"+ArmFTP+"/" curl_easy_setopt( curl, HB_CURLOPT_DOWNLOAD ) curl_easy_setopt( curl, HB_CURLOPT_USERPWD, ArmLogin+":"+ArmPass ) curl_easy_setopt( curl, HB_CURLOPT_URL, cDL+"OUT"+"/"+ArmPostID+"/"+dt2+"/" ) curl_easy_setopt( curl, HB_CURLOPT_DL_FILE_SETUP, cFileName := "*.*" ) ??? по маске, либо через список не хочет. curl_easy_setopt( curl, HB_CURLOPT_FAILONERROR, .T. ) curl_easy_perform( curl ) MsgInfo("DOWNLOAD FILE _ FILENAME: ") а вот тут засада, файлы не скачиваются... нужна помощь. curl_easy_reset( curl ) curl_easy_cleanup( curl ) ENDIF curl_global_cleanup() [/more]

Ответов - 65, стр: 1 2 3 4 All

Dima: Как понять с помощью HBCURL что подключаемся мы через мобильного провайдера ? Среди опций curl_easy_getinfo данных о прове не увидел.....

Петр: Dima пишет: Как понять с помощью HBCURL что подключаемся мы через мобильного провайдера ? Среди опций curl_easy_getinfo данных о прове не увидел..... Для cURL можно так Запрос curl -X GET http://ip-api.com/json/?fields=status,message,country,countryCode,isp,query Результат {"status":"success","country":"Ukraine","countryCode":"UA","isp":"Kyivstar UA","query":"94.153.**.***"} Запрос curl -X GET http://ip-api.com/csv/?fields=status,message,country,countryCode,isp,query Результат success,Ukraine,UA,Kyivstar UA,46.211.**.*** Т.е. ответ можно получить в форматах JSON, XML, CSV.. [url=https://ip-api.com/docs/api:csv]Подробнее[/url]

Петр: Dima пишет: Как понять с помощью HBCURL что подключаемся мы через мобильного провайдера ? [pre2] #include "hbcurl.ch" #define CURL_HTTP_VERSION_2TLS 4 PROCEDURE Main() LOCAL curl, cStr curl_global_init() IF ! Empty( curl := curl_easy_init() ) curl_easy_setopt( curl, HB_CURLOPT_BUFFERSIZE, 102400 ) curl_easy_setopt( curl, HB_CURLOPT_URL, "http://ip-api.com/csv/?fields=status,message,country,mobile,isp,query" ) curl_easy_setopt( curl, HB_CURLOPT_NOPROGRESS, .T. ) curl_easy_setopt( curl, HB_CURLOPT_USERAGENT, "curl/7.75.0" ) curl_easy_setopt( curl, HB_CURLOPT_MAXREDIRS, 50 ) curl_easy_setopt( curl, HB_CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYPEER, .F. ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYHOST, .F. ) curl_easy_setopt( curl, HB_CURLOPT_FTP_SKIP_PASV_IP, .F. ) curl_easy_setopt( curl, HB_CURLOPT_TCP_KEEPALIVE, .T. ) curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP ) curl_easy_perform( curl ) ? "EFFECTIVE URL:", curl_easy_getinfo( curl, HB_CURLINFO_EFFECTIVE_URL ) cStr := curl_easy_dl_buff_get( curl ) ? "RESULT: " + cStr IF hb_ATokens( cStr, "," )[ 4 ] == "true" ? "Mobile (cellular) connection." ENDIF curl_easy_reset( curl ) curl_easy_cleanup( curl ) ENDIF curl_global_cleanup() RETURN [/pre2] Опция cURL --libcurl <file> рулит..


Dima: Петр Понял. Спасибо. Одна проблема только есть , там где нужно чекнуть эту штуку , сисадмин закрыл 80 и 443 порты Разберемся.

Dima: Странная штука , вроде должно работать а не работает и ни какой реакции curl_easy_setopt( curl, HB_CURLOPT_PREQUOTE,{"CLNT testklient"}) Ежели вот так , то пашет конечно curl_easy_setopt( curl, HB_CURLOPT_QUOTE, {"CLNT testklient", "CWD "+rdir} )



полная версия страницы