curl get liste d’arguments de requête trop longue

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" <