"TLS support is not available" error when making HTTPS request

Viewed 433

So yes, the "TLS support is not available" error. This is to be found at this thread as well. However, the solution mentioned is to install glib-networking. I installed this via msys2. While this does work when working in msys2, it does not work when you're just working in Windows 10.

What I mean by this is if I just double-click the program, it will give off this error. When I run it via msys2, it works. When I run it on Ubuntu it also works. The fault lies with Windows and I would suspect having to either add some DLLs or installing glib-networking in some other way.

Anyway, here is the code where the error occurred (I set C# highlighting b/c it's pretty much the same and Vala highlighting doesn't exist on here):

private static void HTTPSReq(string host, string href, string vars) {
    const uint16 PORT = 443;
        
    try {
        Resolver resolver = Resolver.get_default();
        List<InetAddress> addresses = resolver.lookup_by_name(host, null);
        InetAddress address = addresses.nth_data(0);

        SocketClient client = new SocketClient();
        client.tls = true;
        client.set_tls_validation_flags(TlsCertificateFlags.EXPIRED);
        SocketConnection conn = client.connect(new InetSocketAddress(address, PORT));

        int vars_length = vars.length;

        string message = @"POST $href HTTP/1.1\r\nHost: $host\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: $vars_length\r\n\r\n$vars";
        conn.output_stream.write(message.data);

        DataInputStream response = new DataInputStream(conn.input_stream);
        string line, lastLine = "";

        while ((line = response.read_line().strip()) != null) {
            lastLine = line;
        }

        label.set_text(lastLine);
    } catch (Error e) {
        label.set_text(e.message);
    }
}

e.message is the variable which contains "TLS support is not available"

So how do I make this work?

0 Answers
Related