RESPONSEMSG qui contient un - lors d'une 400

RPG (3 et 4, free), CL, SQL, etc...
Répondre
raphael1980
Messages : 6
Enregistré le : ven. 02 avr. 2021, 10:12:41

RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Hello,

J’essaie d’utiliser le HTTPPOSTCLOBVERBOSE de SYSTOOLS mais je ne reçois pas le body d’API attaquée quand le code retour est 400 ou 500 mais un simple -.

Aucun problème quand le code retour est 200.

select *
FROM TABLE (systools.httpPostClobVERBOSE ( CAST ( 'URL' as varchar(200) CCSID 1208),
cast('<httpHeader> <header name="Content-Type" value="application/json;charset=utf-8"/><header name="Authorization" value=" TOKKEN" /> </httpHeader>' as clob(10k) ccsid 1208),
cast('{ "Key1":699, "Key2":51 }' as clob(10k) ccsid 1208)) )as tabtes ;

Avez-vous une idée*?

D'avance, merci.
Raphaël.
Fichiers joints
HTTPPOSTCLOBVERBOSE.PNG
HTTPPOSTCLOBVERBOSE.PNG (13.04 Kio) Vu 376 fois

nbonnet
Messages : 87
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par nbonnet »

Bonjour,

Ici le code retour est HTTP 400 => Bad request
Dans ce cas, rien n'oblige à retourner un message en réponse.
Cela me semble cohérent. En cas de doute, vérifiez avec un outil du type curl, wget, SOAP UI, POSTMAN ou autre ...

Cordialement,
Nathanaël

raphael1980
Messages : 6
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

J’aurais du le préciser. J’ai évidement testé via postman.

L’API répond bien un message de retour du genre.

[
{
"message": "RC: bad value for restricted picklist field: 35",
"errorCode": "INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST",
"fields": [
"FW_Commerciale__c"
]
}
]

nbonnet
Messages : 87
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par nbonnet »

Bonjour,

je n'ai pas refait de tests, mais en cas d'erreur (statut HTTP différent de 2*), les fonctions *VERBOSE renvoient les informations d'erreurs dans RESPONSEMSG : cf https://www.ibm.com/docs/en/i/7.4?topic ... n-overview

J'essaie de retrouver mes tests la dessus !
Nathanaël

raphael1980
Messages : 6
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Effectivement, j'avais espérer l'avoir dans RESPONSEMSG mais j'ai un joli -

Le header aide un peu mais ne donne pas non plus l'erreur exact retournée dans le JSON en body de l'API.

<?xml version="1.0" encoding="UTF-8" ?>
<httpHeader responseCode="400">
<responseMessage>Bad Request</responseMessage>

<header name="Transfer-Encoding" value="chunked"/>
<header name="HTTP_RESPONSE_CODE" value="HTTP/1.1 400 Bad Request"/>
<header name="X-Robots-Tag" value="none"/>
<header name="Strict-Transport-Security" value="max-age=31536002; includeSubDomains"/>
<header name="Cache-Control" value="no-cache,must-revalidate,max-age=0,no-store,private"/>

<header name="Date" value="Fri, 02 Apr 2021 11:16:45 GMT"/><header name="Content-Type" value="application/json;charset=UTF-8"/><header name="XXX-Limit-Info" value="api-usage=192/5000000"/></httpHeader>

raphael1980
Messages : 6
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

je ne t'avais pas compris !

C'est ok , je devais simplement mettre includeErrorMsg="true" dans le httpHeader !

Merci pour ton aide.

raphael1980
Messages : 6
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

J’ai malgré tout un autre souci.

On souhaite utiliser l’API de SalesForce qui n’accepte pas les méthodes PUT mais juste des PATCH.

Hors, je ne vois pas de fonction qui permet de faire un HTTPPATCH.

Une idée ? Une piste ?

raphael1980
Messages : 6
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Bon, j'ai triché.... :twisted:

J'ai envoyé un post et j'ai redéfini la méthode dans l'URL.

url + "?_HttpMethod=PATCH"

Du bricolage mais je ne voyais pas comment faire autrement.

Répondre