- выгрузка файлов с сервера
- загрузка файлов на сервер
- HTTP GET/POST с возможностью прочитать ответ сервера
- Поддержка SSL
Тестировал на протоколах http, https, ftp, sftp, ftpes.
Краткий туториал в файле \doc\How-To.txt.
Модератор: Дед Пахом
Код: Выделить всё
MyCurl.SendRequest('http://sms.ru/sms/send','',Loc:RespBuffer)
Код: Выделить всё
MyCurl.SendRequest('https://sms.ru/sms/send','',Loc:RespBuffer)
Упс ! Точно. Спасибо. Добавил:
Код: Выделить всё
Curl.SetSSLVersion(CURL_SSLVERSION_DEFAULT)
Curl.SetSSLVerifyHost(False)
Curl.SetSSLVerifyPeer(False)
Код: Выделить всё
TCurlFtpClassEx.BuildUrl PROCEDURE(STRING pUrl, STRING pUser, TSSHSettings pSSH)
url STRING(256)
sprotocol CSTRING(20)
CODE
sprotocol = CHOOSE(pSSH.AuthMethod = CURLSSH_AUTH_NONE, 'ftp://', 'sftp://')
! IF pUser AND NOT INSTRING('@', pUser, 1, 1)
! url = sprotocol & CLIP(pUser) &'@'& CLIP(pUrl)
! ELSE
url = sprotocol & CLIP(pUrl)
! END
IF url AND url[LEN(CLIP(url))] <> '/'
url = CLIP(url) & '/'
END
RETURN CLIP(url)
Код: Выделить всё
const char *remote = "sftp://user:pass@example.com/path/filename";
https://www.cs.rutgers.edu/~watrous/user-pass-url.html
Это та же самая проблема, что и при вызове строки подключения к FTP в броузере, когда имя пользователя - это e-mail.
Обновление v1.29 на GitHub. Вместо размножения методов FormPost предлагается просто вызвать curl.SetPostFields('k1=v1&k2=v2').Игорь Столяров писал(а): 16 Август 2018, 6:45Можно ли мечтать о методе:
КОД: ВЫДЕЛИТЬ ВСЁ
FormPost PROCEDURE(STRING pUrl, *IDynStr pDynStr, <curl::ProgressDataProcType xferproc>), CURLcode, PROC
но с передачей параметров pPostFields
А зачем? У меня в классе этот флаг передается в параметре Init, соотв. если ресурсу нужен SSL - передаем, не нужен - не передаемИгорь Столяров писал(а): 16 Август 2018, 16:16Правильно ли я понимаю, что эти строчки можно включать всегда по умолчанию,
т.к. на обычный протокол HTTP они не действуют ? А с ними работает и HTTP и HTTPS ...
А старые варианты работать будут или они выпилены и придется все переделывать? (пока не качал не смотрел)Дед Пахом писал(а): 17 Август 2018, 18:49Обновление v1.29 на GitHub. Вместо размножения методов FormPost предлагается просто вызвать curl.SetPostFields('k1=v1&k2=v2').
Код: Выделить всё
curl.Init()
url = 'http://npchk.nalog.ru/FNSNDSCAWS_2?wsdl' ! ЗАМЕНИЛ
argname = 'userfile'
infile = 'test.xml'
respfile = 'post_response.txt'
res = curl.PostFile(url, argname, infile, respfile)
...
Код: Выделить всё
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://ws.unisoft/FNSNDSCAWS2/Request">
<soapenv:Header/>
<soapenv:Body>
<req:NdsRequest2>
<!--1 to 10000 repetitions:-->
<req:NP INN="7812014560" KPP="770701001" DT="18.08.2018"/>
</req:NdsRequest2>
</soapenv:Body>
</soapenv:Envelope>