- выгрузка файлов с сервера
- загрузка файлов на сервер
- HTTP GET/POST с возможностью прочитать ответ сервера
- Поддержка SSL
Тестировал на протоколах http, https, ftp, sftp, ftpes.
Краткий туториал в файле \doc\How-To.txt.
Модератор: Дед Пахом
Код: Выделить всё
Loc:UserAgent  CSTRING('Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)')
   Code   
   Curl.Init()
   Curl.SetOpt(CURLOPT_USERAGENT,  Loc:UserAgent)
   Curl.SetOpt(CURLSSH_AUTH_AGENT, Loc:UserAgent)
   ...   
Код: Выделить всё
  Curl.Init()
  Curl.FreeHttpHeaders()
  Curl.SendRequest( ….
Код: Выделить всё
  Curl.AddHttpHeader('Accept:')
  Curl.AddHttpHeader('Content-Type:')
  Curl.AddHttpHeader('Expect:')
Код: Выделить всё
Content-Length: 1234
Код: Выделить всё
    Curl.AddHttpHeader('Content-Length: 0')
Код: Выделить всё
  Curl.SetOpt(CURLOPT_POSTFIELDS, 'что-там')
  Curl.SetOpt(CURLOPT_POSTFIELDSIZE, LEN(CLIP('что-там')))
Код: Выделить всё
[4700] [libcurl] HEADER_IN: HTTP/1.1 200 OK 
[4700] [libcurl] HEADER_IN: Date: Thu, 23 Aug 2018 05:08:07 GMT 
[4700] [libcurl] HEADER_IN: Content-Type: application/octet-stream 
[4700] [libcurl] HEADER_IN: Content-Length: 172 
[4700] [libcurl] HEADER_IN: Connection: keep-alive 
[4700] [libcurl] HEADER_IN: Access-Control-Allow-Origin: * 
[4700] [libcurl] HEADER_IN:  
[4700] [libcurl] DATA_IN: Session key: J6rUWkuLyghvn/i/y9nSbAszyICal/BGOxM2B
[4700] [libcurl] TEXT: Curl_http_done: called premature == 0
rc = curl.GetResponseCode()Игорь Столяров писал(а): 23 Август 2018, 8:44А как получить данные из заголовка ответа ? Конкретно нужен статус успешности запроса (200).
В общем случае для получения полей заголовка используйте методы
Код: Выделить всё
GetInfo::LONG                   PROCEDURE(CURLINFO info), LONG
GetInfo::SLIST                  PROCEDURE(CURLINFO info), LONG
GetInfo::STRING                 PROCEDURE(CURLINFO info), STRING
GetInfo::DOUBLE                 PROCEDURE(CURLINFO info), REAL
Код: Выделить всё
CURLINFO_EFFECTIVE_URL        EQUATE(CURLINFO_STRING + 1)С дадатой Вы классный пример выкладывали.
Код: Выделить всё
   curl --http1.0 ...
   curl --http2 ...
Код: Выделить всё
CURLOPT_HTTP_VERSION          EQUATE(84 + CURLOPTTYPE_LONG)             !Specify which HTTP version to use! This must be set to one of the CURL_HTTP_VERSION* enums set below.
!  /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ 
CURL_HTTP_VERSION_NONE              EQUATE(0)                           !setting this means we don't care, and that we'd like the library to choose the best possible for us!
CURL_HTTP_VERSION_1_0               EQUATE(1)                           !please use HTTP 1.0 in the request
CURL_HTTP_VERSION_1_1               EQUATE(2)                           !please use HTTP 1.1 in the request
CURL_HTTP_VERSION_2_0               EQUATE(3)                           !please use HTTP 2 in the request
CURL_HTTP_VERSION_2TLS              EQUATE(4)                           !use version 2 for HTTPS, version 1.1 for HTTP
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE EQUATE(5)                           !please use HTTP 2 without HTTP/1.1 Upgrade
CURL_HTTP_VERSION_LAST              EQUATE(6)                           !*ILLEGAL* http version