Hi Josh,
It just so happens that I can provide a working TI code example of a POST (used to send a SQL query to DataBrick). Hope this helps.
vProcessName = GetProcessName();
vNow = TIMST (NOW(), '\Y_\m_\d_\h_\i_\s' );
vLogFile = '/Process Logs/' | vProcessName | '_' | vNow | '.log';
vDataBricksWorkspaceURL = ATTRS ( '}Clients', TM1User, 'DataBricksWorkspaceURL' );
vDataBricksPAT = ATTRS ( '}Clients', TM1User, 'DataBricksPAT' );
vDataBricksWarehouseID = 'xxxxxxxxxxxxxxxxx';
vDataBricksCatalog = 'xxxxxxxxxx';
vDataBricksSchema = 'xxxxxxxxxx';
vDataBricksStatement = 'SELECT * FROM branch';
vAuthorization = Base64Encode ( TM1User () | ':' | vDataBricksPAT );
vURL = vDataBricksWorkspaceURL | '/api/2.0/sql/statements?format=CSV&disposition=EXTERNAL_LINKS';
vBody = '{"warehouse_id": "' | vDataBricksWarehouseID | '", "catalog": "' | vDataBricksCatalog | '", "schema": "' | vDataBricksSchema | '", "statement": "' | vDataBricksStatement | '"}';
ASCIIOUTPUT ( vLogFile, 'vAuthorization: ' | vAuthorization );
ASCIIOUTPUT ( vLogFile, 'vURL: ' | vURL );
ASCIIOUTPUT ( vLogFile, 'vBody: ' | vBody );
ExecuteHttpRequest ( 'POST', vURL, '-h Authorization: Basic ' | vAuthorization, '-h Expect: ', '-h Content-Type: application/json', '-d ' | vBody );
vResponseCode = HttpResponseGetStatusCode ();
vResponseBody = HttpResponseGetBody ();
IF ( vResponseCode <> 200);
ASCIIOUTPUT ( vLogFile, NumberToString ( vResponseCode ) | ' ' | vResponseBody );
ProcessQuit;
ELSE;
vStatement_id = JsonToString ( vResponseBody, 'statement_id' );
vStatus = JsonToString ( vResponseBody, 'status' );
vState = JsonToString ( vStatus, 'state' );
IF ( vState @= 'SUCCEEDED' );
vManifest = JsonToString ( vResponseBody, 'manifest' );
vSchema = JsonToString ( vManifest, 'schema' );
vColumn_count = JsonToString ( vSchema, 'column_count' );
vTotal_chunk_count = JsonToString ( vManifest, 'total_chunk_count' );
vResult = JsonToString ( vResponseBody, 'result' );
vExternalLinkCount = JsonSize( vResult, 'external_links' );
vExternalLinks = JsonToString ( vResult, 'external_links' );
vExternalLinkIndex = 0;
WHILE ( vExternalLinkIndex <vExternalLinkCount );
vExternalLink = JsonGet ( vExternalLinks, vExternalLinkIndex );
vLink = JsonToString( vExternalLink, 'external_link' );
ASCIIOUTPUT ( vLogFile, 'vExternalLink: ' | vLink );
ExecuteProcess( 'DataBricks.ReadExternalLink', 'pLink', vLink );
vExternalLinkIndex = vExternalLinkIndex + 1;
END;
ELSE;
ENDIF;
ENDIF;
------------------------------
Stuart King
Product Manager
IBM Planning Analytics
------------------------------