callWithPOST change content type
-
@Christoph-Hart I think the first one is the safest option
-
@David-Healey @Christoph-Hart As I've just started building out the Installer of the plugin on a Windows VM I'm strangely running into a error again....
As discussed the Server.callWithPOST function worked perfectly fine passing the JSON via trace() as stringified data - however, when trying to execute the same function on Windows the parsed string into the request is rejected due to the type check:
local jsonData = trace(data); Server.callWithPOST(endpoint, jsonData, function(status, response)Error: Illegal type: string, expected: JSON
Is there any other type check embedded here which will only trigger while on Windows?
Not sure how I could create a workaround for that.. -
@Daanyoo Are you using the same version of HISE on both systems? I'm not aware of any Windows specific limitation.
-
@David-Healey Yes, both are running on the latest version of HISE - I also didn't expect any OS specific differences here..
-
No Matter how I try passing the JSON object into the callwithPOST function, it always arrives in this URL-encoded format, which makes my request for the license activation fail.
One for Christoph I guess...
-
@Daanyoo have you tried trace(ob) before passing it in? There is some funkiness going on with Post parameter handling. You might also have to call a header that sets the json content type.
-
@Christoph-Hart I use trace(data) and it works perfectly fine on OSX.
local jsonData = trace(data); Server.callWithPOST(endpoint, jsonData, function(status, response) { if (status == 200) { currentHttpCallback(true, response); } else { currentHttpCallback(false, {"error": "HTTP " + status}); }However when executing the same function on my Windows HISE build the typecheck fails and String is rejected:
Interface:! LicenseManager.js (767): Illegal type: string, expected: JSON
The json content type is also being correctly passed, as the request is successful on OSX.
-
@Daanyoo set the content type header
-
@David-Healey I already did:
Server.setBaseURL(MOONBASE_API); Server.setHttpHeader("Content-Type: application/json\nAuthorization: Bearer " + currentAccessToken); -
As already mentioned, the request using the same function with the JSON string is delivered perfectly fine on OSX:

I cant figure out why it wouldn't work on WIN, even though the code is identical.
-
@Daanyoo I just tried to reproduce it on a empty project on WIN, it worked there and all of the sudden it worked in the regular project as well... I am so confused haha
But at least its fixed, thank you guys for your help!!