cUrl: elenco argomenti troppo lungo


15

Ricevo l'errore: Argument list too longquando provo ad usare cUrl per inviare un file in base64 all'interno del corpo del mio JSON.

Sto usando qualcosa del genere:

DATA=$( base64 "$FILE" )

curl -X POST -H "Content-Type: application/json" -d '{
   "data": "'"$DATA"'"
}' $HOST

C'è un altro modo per ottenere i DATI nel corpo del mio JSON?

Tieni presente che devo leggere un file nel mio filesystem, trasformarlo in base64 e quindi inviarlo all'interno del corpo.


Risposte:


19

Se il file con codifica base64 è troppo grande per rientrare nell'elenco degli argomenti, dovrai passarlo tramite un file. Uno dei modi più semplici a cui riesco a pensare è passarlo tramite input standard. Dalla pagina man di curl , puoi usare -d @-per leggere da stdin invece che dalla riga di comando.

curl -X POST -H "Content-Type: application/json" -d @- "$HOST" <<CURL_DATA
{ "data": "$DATA" }
CURL_DATA

Puoi anche usare questa versione che mi piace di più:echo { "data": "$DATA" } | curl -X POST -H "Content-Type: application/json" -d @- "$HOST"
morhook,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.