Question
· Fév 5

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 JSON
 	Set tSC = ..ObjectToJSONStream(utilisateur, .entityBody)
 	$$$ThrowDecomposeIfError(tSC, "Impossible de transformer le message", $$$ErreurRecuperationToken)
 	
 	Set httpRequest.EntityBody = entityBody
 	//Appel à l'api security/authentication
 	set tSC = ..Adapter.SendFormDataArray(.response, "POST",httpRequest,,,..Adapter.URL_"/security/authentication")
 	$$$ThrowDecomposeIfError(tSC, "Impossible d'appeler l'api", $$$ErreurRecuperationToken)
 	//Transformation du JSON de retour en message
 	set 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")
}
Version du produit: IRIS 2024.1
Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer