Commande cURL

RPG (3 et 4, free), CL, SQL, etc...
Répondre
Annieg
Messages : 13
Enregistré le : mer. 14 oct. 2020, 15:15:09

Commande cURL

Message par Annieg »

Bonjour,

Lorsque que j'exécute une commande cURL via un pgm, je récupère un code erreur = 0 et le contenu du fichier sur l'ifs est vide.
Alors que si je lance la même commande via Postman et le résultat est bon.

Voici le curl récupéré du postman :
curl --location --request POST 'https://document-management-services.i1 ... /open/auth' \
--header 'Accept: application/json' \
--header 'Authorization: Basic ZG1zX29hdjpkbXNvYXYyMDIw' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials'

Voici la commande lancée via le pgm :
STRQSH CMD('/QOpenSys/pkgs/bin/curl --location --request POS
T ''https://document-management-services.i1 ... al.dev.app
s.cbp.solutions/private/open/auth'' \ --header ''Accept: ap
plication/json'' \ --header ''Authorization: Basic ZG1zX29h
djpkbXNvYXYyMDIw'' \ --header ''Content-Type: application/x
-www-form-urlencoded'' \ --data-urlencode ''grant_type=clie
nt_credentials'' > ''/Application/Adhesion/courriers/outputT
oken-20210816144757713300.txt''')

Avez-vous une idée ?
Merci d'avance pour vos réponses.

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

Re: Commande cURL

Message par nbonnet »

Bonjour,

quel est le résultat si vous le tapez depuis l'IBM i en ligne de commande QSH ?
Nathanaël

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

Re: Commande cURL

Message par nbonnet »

Je viens de voir également : les \ sont en trop je pense
Nathanaël

Annieg
Messages : 13
Enregistré le : mer. 14 oct. 2020, 15:15:09

Re: Commande cURL

Message par Annieg »

Quand je tape la commande, le code erreur est 0 et le statut = 3.

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

Re: Commande cURL

Message par nbonnet »

Vous pouvez nous faire un copier/coller du résultat sous QSH ?
Nathanaël

Annieg
Messages : 13
Enregistré le : mer. 14 oct. 2020, 15:15:09

Re: Commande cURL

Message par Annieg »

J'ai oublié de mentionner que l'exemple suivant fonctionne dans un pgm :
STRQSH CMD('/QOpenSys/pkgs/bin/curl --location --request PO
ST ''http://edition-oav.i1.internal.dev.apps.cbp.solutions/o
av/uploadMultipleFiles?name=document.pdf&mimetype=applicatio
n/pdf'' \ --form ''courrier=@/Application/Adhesion/courrier
s/208/2021/8/5/63400068_A_Assure.PDF'' \ --form ''json={"co
urrier":{"id":63400068,"dmsMetaData":{"content":{"mimeType":
"application/pdf"},"description":"63400068-Assuré","indexati
on":{"activity":{"id":"1"},"domain":{"id":"1"},"subsidiary":
{"id":"4"},"nature":{"id":208}}}},"transmissionCourrier":{"i
d":"OUTPUT_MAIL","copyCount":"1","registered":"false","count
ry":{"id":"71","name":""},"printing":{"defaultPrintingQueue"
:"JOURPREVX","printingMode":"AUTOMATIC"},"delay":1}}'' > ''/
Application/Adhesion/courriers/output-20210826102607724447.t
xt''')

Annieg
Messages : 13
Enregistré le : mer. 14 oct. 2020, 15:15:09

Re: Commande cURL

Message par Annieg »

En lançant la commande STRQSH CMD.... sur une ligne de commande, j'obtiens :
$
'/QOpenSys/pkgs/bin/curl --location --request POST ''https://document-management-services.i1 ... tions/priv
ate/open/auth'' \ --header ''Accept: application/json'' \ --header ''Authorization: Basic ZG1zX29hdjpkbXNvYXYyMDIw'' \ --heade
r ''Content-Type: application/x-www-form-urlencoded'' \ --data-urlencode ''grant_type=client_credentials'' > ''/Application/Adhe
sion/courriers/outputToken-20210826888757713300.txt'''
qsh: 001-0014 Command /QOpenSys/pkgs/bin/curl --location --request POST https://document-management-services.i1 ... l.dev.apps
.cbp.solutions/private/open/auth \ --header Accept: application/json \ --header Authorization: Basic ZG1zX29hdjpkbXNvYXYyMDIw \
--header Content-Type: application/x-www-form-urlencoded \ --data-urlencode grant_type=client_credentials > /Application/Adhes
ion/courriers/outputToken-20210826888757713300.txt not found.
$

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

Re: Commande cURL

Message par nbonnet »

La commande ne doit pas être entre cote ' (c'est peut être juste le copier / coller).

Vous pouvez vérifier que la commande curl est bien installée par :
/QopenSys/pkgs/bin/curl --help
Nathanaël

Annieg
Messages : 13
Enregistré le : mer. 14 oct. 2020, 15:15:09

Re: Commande cURL

Message par Annieg »

J'ai essayé en enlevant les ' et voici les messages :
curl: (3) URL using bad/illegal format or missing URL
curl: (6) getaddrinfo() thread failed to start

Je confirme, la commande curl /QopenSys/pkgs/bin/curl --help est bien installée.

vazymimil
Messages : 32
Enregistré le : ven. 28 sept. 2018, 17:14:46

Re: Commande cURL

Message par vazymimil »

Bonsoir,

essayez après avoir ajouter la variable d'environnement QIBM_MULTI_THREADED, par défaut QSH n'est pas multithread.

Code : Tout sélectionner

ADDENVVAR ENVVAR(QIBM_MULTI_THREADED) VALUE('Y')
curl: (6) getaddrinfo() thread failed to start devrait disparaitre

si curl: (3) URL using bad/illegal format or missing URL persiste essayons avec un script shell

Code : Tout sélectionner

EDTF 'curltest.sh'

Code : Tout sélectionner

PATH=/QOpenSys/pkgs/bin/:$PATH
curl 
--verbose
--location --request POST 'https://document-management-services.i1.internal.dev.apps.cbp.solutions/private/open/auth' \
--header 'Accept: application/json' \
--header 'Authorization: Basic ZG1zX29hdjpkbXNvYXYyMDIw' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
> '/Application/Adhesion/courriers/outputToken-20210816144757713300.txt'
Puis lancez (toujours avec QIBM_MULTI_THREADED=Y)

Code : Tout sélectionner

QSH CMD('chmod +x curltest.sh;curltest.sh')
Nicolas

Répondre