Je dois obtenir des données d’un service. Je lui passe un tas d’id.
Les identifiants sont stockés dans un fichier séparé par des virgules
Exemple: cat id_file
1,2,3,4,5,6,7,8,9,10,.....10000.
Il y a des milliers d’id dans le fichier.
Dans mon script shell, j’utilise
id_list=$(cat id_file) curl -H "Authorization: Bearer $token" -X GET "http://prk.xyx.com/tpt/abc/v2/dce_info?Id=$id_list&mpId=0" > op_data.json
La commande curl échoue avec l’erreur "/usr/bin/curl: Argument list too long".
Maintenant, dans curl POST
nous pouvons spécifier @filename
. Pouvons-nous faire quelque chose pour obtenir une demande?
Vous pouvez choisir de lire toutes les options et les URL à partir d’un “fichier de configuration” au lieu de la ligne de commande en utilisant -K , ce qui élimine complètement les limitations de longueur. Vous pouvez ensuite également faire en sorte que ce fichier de configuration soit lu à partir de stdin si vous le souhaitez. Ainsi, lorsque vous écrivez un script, vous n’avez pas besoin de créer un fichier temporaire à cet effet.
Voir aussi la section du fichier de configuration dans le livre gratuit.
Si possible, vous pouvez transmettre vos données à Json pour que vos requêtes se chargent plus facilement
curl -X POST -H "Content-Type: application/json" -d @- "$HOST" <