Hello.
I'm trying to POST a JSON on an URL.
But the body request arrive empty on the web service :
[DEBUG] # 2022-05-05 15:04:32,966 # scopes founds : api
[DEBUG] # 2022-05-05 15:04:32,971 # PatientController:PostSignaletic object null
Here is the code, i tried a TONS of ways to do it but i'm still in trouble ...
Method SendSignaletique(Token As %String)
{
//set UrlPats = "https://app.depistagesurdite.be/externaldemo"
/*set internalID = "123456789"
set lastName = "Test"
set firstName = "CHRV"
set dateOfBirth = "2022-05-04"
set gender = "1"
set clinicId = 22
set mothersName = "CHR VERVIERS"
set address = "Rue du parc , 29"
set postalCode = 4800
set place ="Verviers"
set telephone1 = "087212824"*/
try
{
set JsonArray = ##class(%DynamicArray).%New()
set SignaletiquePat = ##class(%DynamicObject).%New()
set SignaletiquePat.internalID = "050522001"
set SignaletiquePat.lastName = "Tata"
set SignaletiquePat.firstName = "Silva"
set SignaletiquePat.dateOfBirth = "05/05/2022"
set SignaletiquePat.gender = "1"
set SignaletiquePat.clinicId = 22
set SignaletiquePat.mothersName = "Anne Dede"
set SignaletiquePat.address = "Rue des prés, 50"
set SignaletiquePat.postalCode = "4620"
set SignaletiquePat.place = "fléron"
set SignaletiquePat.telephone1 = "0499998855"
set JsonArray."0" = SignaletiquePat
set JsonArrayOBJ = JsonArray.%ToJSON()
$$$TRACE("Json : " _JsonArrayOBJ)
set HTTPRequestPat = ##class(%Net.HttpRequest).%New()
set HTTPRequestPat.ContentType = "application/json"
Do HTTPRequestPat.SetHeader("Authorization","Bearer "_Token)
Do HTTPRequestPat.EntityBody.Write(JsonArrayOBJ) // like this ? didnt work
set ..Adapter.HTTPServer = "185.36.164.222"
set ..Adapter.URL = UrlPats_"/api/patient/signaletic"
set st = ..Adapter.SendFormDataURL(..Adapter.URL,.callResponsePat,"POST",HTTPRequestPat,,JsonArrayOBJ) // not working too....
#dim callResponsePat as %Net.HttpResponse
set dynamicObject = {}.%FromJSON(callResponsePat.Data)
set JsonString = dynamicObject.%ToJSON()
$$$TRACE("return : " _ JsonString)
set Iterator = dynamicObject.%GetIterator()
While Iterator.%GetNext(.key,.val)
{
if (key = "Message")
{
if (val = "An Error as Occured.")
{
$$$TRACE("Erreur : "_ val)
}
else
{
$$$TRACE("pas d'erreur : " _val)
}
}
}
}
catch ex
{
$$$TRACE("Error while sending datas: "_ex.DisplayString())
}
}