Realizando prueba con HIX para consumir una API de Node.js para acceder a un servidor MaridaDB / MySQL:
Y este es el resultado:

El api de Node.js esta instalado en un servidor local con Linux Ubuntu 24.04.
Gran trabajo Carles con HIX.
Saludos cordiales.
Carlos.
#xcommand TRY => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS
function main()
local cHtml := '', oHttp, cUrl, cJson, hParams, cResponse
hParams := {=>}
hParams["action"] := "ping"
cJson := hb_jsonEncode( hParams )
cUrl := "http://192.168.0.50:3002/api/ping"
oHttp := TApiConnNodeJs()
oHttp:Open( "GET", cUrl, .F. )
oHttp:SetRequestHeader( "Content-Type", "application/json" )
oHttp:SetRequestHeader( "Accept", "application/json" )
oHttp:SetRequestHeader( "Cache-Control", "no-cache" )
oHttp:SetRequestHeader( "Connection", "Keep-Alive" )
oHttp:Send( cJson )
cResponse := oHttp:responseText
cHtml += '<h2>Information test ApiNodeJs</h2><hr>'
cHtml += '<small>Processed at ' + dtoc(date()) + ' ' + time() + '</small>'
cHtml += '<hr>'
cHtml += 'responseText: ' +cResponse
return cHtml
//-------------------------------------------------------------------------------------------------------------------
function TApiConnNodeJs()
LOCAL lHttp, oHttp
lHttp := .f.
TRY
oHttp := CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
lHttp := .t.
CATCH
lHttp := .f.
END
IF !lHttp
TRY
oHttp := CreateObject( "MSXML2.ServerXMLHTTP" )
lHttp := .t.
CATCH
oHttp := CreateObject( "MSXML2.XMLHTTP" )
lHttp := .t.
END
END
RETURN oHttp
El api de Node.js esta instalado en un servidor local con Linux Ubuntu 24.04.
Gran trabajo Carles con HIX.
Saludos cordiales.
Carlos.