Waitman Gobble

2020-11-17 7:08 pm


by Waitman Gobble

Email: waitman@waitman.net


curlyq Help

1. What is curlyq?

curlyq is an open source Desktop application similar to "Postman". It was developed using Qt and libcurl. It was designed to work on systems where "Postman" is not available, such FreeBSD and musl libc Linux systems. curlyq uses libcurl.

2. Getting curlyq.


3. Building curlyq.

Set up your system for Qt development. You will use 'qmake' to build the software. You will also need the libcurl development package. (With openssl, to connect via SSL).

Building is straight-forward.

# qmake
# make

on Ubuntu:

sudo apt install qtchooser
sudo apt-get install qt5-default 
sudo apt install libcurl4-openssl-dev

If you are building on MS Windows, you need to download the Qt development package from qt.io. You will also need to download the libcurl binaries (or build yourself) for MingW64. https://curl.se/windows/

Put the libcurl files in the Qt directory and edit the curlyq.pro file so it can find the liibcurl library. You don't need "INCLUDEPATH" just "LIBS".

LIBS += -LC:/Qt/5.15.0/mingw81_64/lib/ -lcurl

Copy "curl" directory from libcurl includes to C:\Qt\5.15.0\mingw81_64\include, copy libs contents to C:\Qt\5.15.0\mingw81_64\lib, copy bin contents to C:\Qt\5.15.0\mingw81_64\bin

Please note that on Windows libcurl we need to specify the CA file, or disable ssl cert verification (NOT RECOMMENDED).

4. Binary packages.

MS Windows:


# sha256sum curlyq-setup.exe

If you do not have MS Visual C++ files already installed on your machine you will receive an error about a missing file when you start the program. You can download it from this website, or directly from Microsoft.


# sha256sum vcredist_x64.exe 

Microsoft link:


You want the file vcredist_x64.exe

Please note that on Windows libcurl we need to specify the CA file, or disable ssl cert verification (NOT RECOMMENDED). A CA File can be found in the installation directory. OR you can download a current CA file from the cURL site. http://curl.haxx.se/ca/cacert.pem (Note, you can also extract this file from your browser, look for instructions online)

5. Operating curlyq


From the "File" top menu, the following submenu options are available:

Exit: Exit the program

Save Settings: Saves the current item's settings. If there is no current item, this option has no effect.

Clear Settings: Removes all settings. Note that there may be remaining data in the config file, which is located at the following path:

$HOME/.config/Waitman\ Gobble/curlyq.conf

If you want to totally remove all data, you may safely delete that file. You may change the location by editing the c++ files before building the software.


The left pane displays the list of URLs. When you choose a URL in the left pane, the corresponding settings and most recent output and log will load.


::Params Tab::

These parameters are used for POST and GET methods. In a GET method the parameters are encoded and added to the URL as the query string, but ONLY if there is no ? in the URL field. If there is a ? character in the URL text field when performing the GET method, then the parameters are ignored. In a POST operation the parameters are included regardless of the query string presence in the URL field.

There is a hard limit of 50 parameters.

::Headers Tab::

You can modify and add headers sent with the HTTP request. Note: see the "JSON content" option on the Options Tab, which will override content-type and accept headers specified on the Headers tab.

There is a hard limit of 20 headers.

::Options Tab::

Show Progress Checkbox:

This option will show cURL progress.

Verbose Checkbox:

This option reports the status of cURL operations.

Capture cURL log Checkbox:

This option captures the cURL output and displays in the bottom log pane. The other way to see the log is to start curlyq from the command line and watch stdout.

JSON Content Checkbox:

This option sets the Accept and Content-Type headers to "application/json". The JSON string you want to send to the server is entered on the Body tab.

HTTP Version Combo:

You can choose from HTTP 1.0, HTTP 1.1, HTTP 2.0 or HTTP 3.0. If the server does not support the selected version it will either return an error or no data.

IP Protocol Combo:

You can choose Auto, IPv4 or IPv6. Your computer and network must be configured for the specified protocol.

SSL Version Combo:

You can choose the desired SSL version for SSL connections. NOTE: The openssl client library installed on your computer must also support the selected SSL version. SSLv2 and SSLv3 are deprecated and probably not supported on your computer, and should not be available on your server.

SSL CA File:

You can enter the path to desired CA CERT File. If this field is blank, it will use the system default. On MS Windows you may need to specify a current CA file. An up--to-date file may be found on the cURL web site at the following URL:


SSL Verify OFF:

Check this box to disable SSL verfication (NOT RECOMMENDED).

HTTP Username:
HTTP Password:

Provide your authentication information here. The password is encrypted using blowfish algorithm, before it is stored in the configuration file. (Change the encryption key before compiling the software).

Save Settings Button:

Use this button to save settings without processing, ie "GO" button

::Body Tab::

Here you can enter the raw data, for example a JSON string. If there is data in the Body field then the parameters will not be sent with a POST request.

::File Tab::

You can browse and enter a file path. The file is sent with POST and PUT method operations. It will automatically use "Expect" as negotiated with the server. (Depends on HTTP version used).


Method Combo:

The folowing HTTP Methods are implemented.











The following HTTP Methods are sent to the server, if selected, however they are not yet specifically implemented on the client.







This displays the Response Code returned by the server, and the Response Length. If cURL encounters an error, the response code is set to "ERR" and the returned body contains the cURL error message (NOT from the server). An example would be an address which does not resolve.


Headers returned by the server will be shown here.


The response from the server will be shown here. It's a plane text field, ie no HTML or JSON rendering.


cURL process log will appear here if the option is set.

Copyright 2020 Waitman Gobble. Contact