Basic CURL with VB6

By | 2017-09-17

This is a basic example of how to download the html of a web page with Visual Basic 6, using no ActiveX controls, and only Windows API calls.

Rather than utilizing a standard form-based interface for this example, I decided to build it as a more useful console application. Why a console app, you ask?

By utilizing a command line based application, you can more easily call the application from another scripting language, such as batch or PowerShell, and pipe the output to other locations, such as files or arrays.

Or, the gods forbid, you might have a pre-PowerShell Windows computer that is still in use, which you need to add this functionality to. This example might help you build a console based solution for a problem you might be having.

Usage

Remember, this has no form-based interface, so all interaction is through the command line.  If you run this from the VB6 IDE, your screen will blink, but that is about it. To get any usable output from it, you’ll have to compile it, and run it from the command line.  Don’t forget to install the requirements before you compile it, though.  If you don’t pay attention to requirements, this example won’t make output!

The example only has one command line option, which is the URL for the website to grab. If you don’t supply a URL, an error will be displayed.

Program Flow

This is a pretty basic demo. It doesn’t do any parsing or anything, but simply grabs the HTML code of a website.

First, basic checks are made that a value was passed, and ensures that there is an HTTP:// or HTTPS:// in the front of the URL. Probably not necessary, but it’s there. If it is not there, it is added.

Next, an attempt is made at downloading the HTML using the URLDownLoadA function in URLMon. If the URL is valid and accessible, the content is downloaded to a temporary file in the current directory. If the URL is not valid or accessible, Error 53 (file not found) is generated, and an error will be written to the console.

If the previous step has completed successfully, the content is output to the console, and the temp file is deleted.

Like I said, not much to it. Hopefully, someone can find some usage for this, maybe expand on it.

VB6 CURL in Action

Requirements

This example requires the use of the outstanding VBAdvance console package for VB6, which allows you to create true console-subsystem applications in Visual Basic that interact with the command-prompt from which they were launched. This code module is the only one of it’s kind and provides everything you’ll need to create full-featured and robust console applications.

The package is available from:

http://vb.mvps.org/tools/vbadvance/

After the code is compiled, no external libraries or controls are needed. The reliance on the vbAdvance package is simply to make the console application. After the app is made, it’s done.

No installation is needed, either.  Simply drop the executable somewhere in your path.

Special Instructions

Makes use of URLDownloadToFileA from URLMon to download HTML.

Download the demo project:

Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.