cUrl:パラメータリストが長すぎます。

cUrl:パラメータリストが長すぎます。

Argument list too longcUrlを使用してJSON本体にBase64形式のファイルを送信しようとするとエラーが発生します。

私は次のようなものを使用しています:

DATA=$( base64 "$FILE" )

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

JSON本文からデータを取得する他の方法はありますか?

ファイルシステムからファイルを読み取り、それをBase64に変換してから本文に送信する必要があると思います。

ベストアンサー1

base64でエンコードされたファイルが大きすぎてパラメータリストに収まらない場合は、ファイルを渡す必要があります。私が考えることができる最も簡単な方法の1つは、標準入力を介して渡すことです。 ~からカールマンページ-d @-、コマンドラインではなく標準入力から読み取りを使用できます。

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

おすすめ記事