Curl4delphi Versions Save

A little libcURL binding for Delphi XE2+. Supports “easy” interface only. See wiki for more documentation.

v0.3_Tokyo

6 years ago

Because of some Japanese customers that wanted to translate our software (written in Qt), we realized that our translation tool (3 years older, written in C++ Builder) is not ready to new HTTPS infrastructure. Obsolete Indy did not even handshake!

Raw library [+] Supports the latest cURL (7.56.1). [−] Compiles in C++ Builder (there were problems with auto-generated header that are not solvable with HPPEMIT). It appeared to be a good thing, LIB extracted from DLL is enough for Delphi binding, but not enough for C. [+] Added some nice UA strings. [+] Identified options of TCurlProxyType, TCurlUseSsl, TCurlFtpMethod, TCurlIpResolve, TCurlRtspSeq, TCurlNetRc, TCurtlSslVersion. [−] POSTFIELDS were incorrectly identified as string → now raw pointer. [−] QUOTE was incorrectly identified as object → now slist. [−] Deleted OBSOLETE’s that sneaked to Lib because of auto-replace. [!] Renamed TCurlHandle → HCurl, and so on. All of them point to empty records (which, by Pascal rules, are incompatible). [!] TCurlSocket is now TSocket. [−] CURLINFO_CERTINFO is now slist → pointer [!] Some double infos are now deprecated. [+] Added ProxyFromIe function. [+] CurlDllName defined for conditional compilation and for easy changing name to match cURL version.

Wrappers [+] A simpler way to add a memory file. [+] Added fluent interface, disposed of Form property. [+] Proxy from IE. [−] ICurlField.PtrContent: possible array overrun. [−] Now can add memory buffers in ICurlForm >2G on x64. [!] Removed ICurl.SetSslVersion, use SetOpt instead. [!] All memory file RawByteString’s are var, as they should exist for the entire ICurl life. [!] Some double infos are now deprecated. [+] Updated for raw library types. [+] >2G disk files supported on x86. New LargeLength function of CustomField gets that large length that’s impossible to pass through arrays. I do not write workarounds for old cURL, as it is 2 years old! [−] Typo in form’s exceptions. [!] GetResponseCode → ResponseCode [+] SwitchRecvToString, ResponseBody [!] No more Curl.RawByteStream, now it is in Curl.Interfaces.

Examples [+] Updated Easy\PhotoInfo for easier way of memory files. [−] Raw\Https example now WriteLn’s. [+] Raw\A+B now shows both initial and type-safe version of formadd. [+] Raw\A+B disposed of wrappers. [+] Raw\A+B now gets some info. [!] Updated examples to those nice UA strings. [!] Updated ProgressBar example, now it downloads more recent LOo. [!] Updated for fluent interface.

v0.2

9 years ago

[−] ICurlField: double Build added another CURLFORM_END. [−] ICurlField: fixed Build return type. [−] EvCurlRead/EvCurlWrite: wrong parameter type [!] ICurlForm, ICurlField — extracted subtype ICurlCustom* [!] ICurlForm — DoesUseStream → ReadFunction [!] SetForm and SetSendStream are mutually-exclusive. [+] Added ICurlGetBuilder + example

v0.1

9 years ago

Initial version, seems to work. “7:40” is a song of Russian Jews about a train arriving in Kiev from Odessa (in other version, at 7:40 pm to Odessa from Kiev, or at 7:40 am to Odessa from outskirts).