Erreur rencontrée lors de l'appel d'une API
Bonjour, j'ai un problème avec un appel et j'aurais besoin d'aide.
Lorsque j'appelle une API avec la méthode SendFormDataArray de l'adaptateur EnsLib.HTTP.OutboundAdapter, je lui passe un objet %Net.HttpRequest et je reçois l'erreur suivante :
ERROR #5002: ObjectScript error: <SUBSCRIPT>MatchSuffix+1^%Net.HttpRequest.1 ^%qPublicSuffix("")
J'ai correctement saisi l'url dans mon business operation et je la passe dans le dernier paramètre de la méthode SendFormDataArray. Avez-vous une idée, s'il vous plaît ?
Method XRPUAuthentification(pInput As ANCV.msg.BO.XRPUAuthentificationDmde, Output pOutput As ANCV.msg.BO.XRPUAuthentificationRpse) As%String
{
Set pOutput = ##class(ANCV.msg.BO.XRPUAuthentificationRpse).%New()
Try{
Set httpRequest = ##class(%Net.HttpRequest).%New()
Set utilisateur = ##class(ANCV.WebObjet.wsXRPUUtilisateur).%New()
Set utilisateur.login = ..RecupererLogin()
Set utilisateur.password = ..RecupererMdp()
Do httpRequest.SetHeader("Content-Type", "application/json")
//Transformation du message d'entrée en JSONSet tSC = ..ObjectToJSONStream(utilisateur, .entityBody)
$$$ThrowDecomposeIfError(tSC, "Impossible de transformer le message", $$$ErreurRecuperationToken)
Set httpRequest.EntityBody = entityBody
//Appel à l'api security/authenticationset tSC = ..Adapter.SendFormDataArray(.response, "POST",httpRequest,,,..Adapter.URL_"/security/authentication")
$$$ThrowDecomposeIfError(tSC, "Impossible d'appeler l'api", $$$ErreurRecuperationToken)
//Transformation du JSON de retour en messageset tSC = ..JSONStreamToObject(response.Data, .pOutput, "ANCV.msg.BO.XRPUAuthentificationRpse", 1)
$$$ThrowDecomposeIfError(tSC, "Impossible de récupérer le token", $$$ErreurRecuperationToken)
set pOutput.codeRetour = "OK"
} Catch Exception {
Set pOutput.codeRetour = "KO"Set pOutput.libErreur = Exception.DisplayString()
Set pOutput.codeErreur = Exception.Code
}
Quit$$$OK
}
Method RecupererLogin() As%String
{
Quit##class(Ens.Config.Credentials).GetValue(..Adapter.Credentials, "Username")
}
Method RecupererMdp() As%String
{
Quit##class(Ens.Config.Credentials).GetValue(..Adapter.Credentials, "Password")
}Product version: IRIS 2024.1
Discussion (0)0