From wiki.visual-prolog.com

The VPcURL package provides Visual Prolog bindings to the cURL library, which is an open source library for HTTP and FTP. Also included are bindings for zlib, expat en libxml.

Provided by Jan de Lint.


  • VPcURL functions which are reasonable close to the Curl manual.
  • VP multithreading replacing curl_multi (VP 72 CE required)
  • HTTP and FTP
  • zlib compression library (some functions), see the Zlib specs
  • expat xml parser bindings with usage example
  • libxml2 html parser bindings with usage example

Note: Vip 7.3 CE is needed for VPcURL to run on Windows 7. Otherwise Vip 7.2 CE is sufficient.

Separate classes with runnable annotated samples include

  • a complex connection with POST, file-upload, POST- and GET-vars, file download all in one go.
  • a simple case opening a page (.HTML) on the internet which does not exist
  • a simple case downloading an image file from the internet and saving it on disk.
  • an FTP upload testcase (please provide your own FTP adres, userid and password).
  • an FTP download case
  • a 3 step header/redirect example
  • a debug mode example
  • expat usage example
  • libxml2 usage example

I assume you need the VP CE version for the background cases to run properly. If you don't need the background, strip new/3 and associated stuff and recompile.

Please edit testcases.pro, testcase 5 and 6 (numbers 4 and 5), to provide your own FTP parameters. The other testcases are HTTP and can be run out of the box, provided the servers are not down. F5 will randomly pick a background testcase and run it. Once all the testcases do run, you could do some stress-testing by constantly hitting the F5 key.

Here are recommendations: how to incorporate VPcURL in your program



  • 20-5-2010
    • Compiles cleanly with VP 7.3 CE
  • 19-9-2009
    • Fixed broken HTTP post
    • streamlined Post usage and housekeeping
  • 17-11-2008
    • Works with VP 7.2
    • Internal cleanup
  • 19-2-2008
    • Changed the expat bindings to libexpatw.dll (the unicode version) which makes the callbacks more 'native' to VP.
  • 17-2-2008
    • Minor changes to the expat bindings to use binary strings for input and the proper codepage utf8 for output.
    • Also added error reporting bindings (courtesy Gildas Ménier).
    • Changed the libxml2 bindings, a more realistic html testfile is included.
    • Note: the exact input and output codepages of libxml2 still have to be established.
  • 13-2-2008
    • Starting this version the required open source dll's will have to be downloaded separately from the appropriate websites.
    • Added libxml2 html parser bindings
    • Small change to the VPcURL package: resetInputStream, resetHeaderstream and resetDebugstream have been made more safe.
  • 29-1-2008
    • include expat xml parser bindings
  • 9-1-2008
    • include zlib package in the installation
    • include libcurl.dll and zlib1.dll in the installation
  • 26-12-2007
    • generic support for reuse of connections/performs
    • header info + additional redirect testcase/sample
    • debug info + debug example (primarily to debug protocol problems)
    • libcurl and zlib version info
  • 11-12-2007 Added good old zlib compression library class and enhanced testcase 1
  • 4-12-2007 Initial version


Download from Discussion forum: VPcURL package

You will also need to download the respective libraries from the pages mentioned below.