URL() not working for https


#1

I am working on some JSON-RPC code, and the server is using SSL.  

The code I am using on JUCE works ok on Mac, but not on Linux:


URL aUrl("https://...");
URL theUrl = aUrl.withPOSTData ("the post data ...");
InputStream *is = theUrl.createInputStream( true,
    nullptr,
    nullptr,
    "extra headers ...."
    );
if (is)
{
    String result = is->readEntireStreamAsString();
    ...
}

For some reason, the InputStream is NULL on Linux, using an https connection (it works fine over plain http)

Is there some option I need to have for Linux version to work properly with SSL, or is it just not implemented?


#2

It's not implemented. On OSX and Windows there are built-in OS calls to handle SSL, but on linux there's no such thing. Could be possible by using libraries, but haven't had time to investigate this.


#3

Aha.  Well, good I asked before trying to spelunk in the code.

Where in the JUCE code should I try to fix it (I really need SSL working)


#4

Search for "WebInputStream" - the linux implementation just uses raw sockets. Using an SSL transport library instead would involve replacing this class entirely - I should warn you that it's probably not a trivial job!


#5

Ah, I don't have time to do that.  I guess I'll fall-back to using libcurl for this, on Linux