cUrl:引数リストが長すぎます


15

エラーが発生しています:Argument list too longcUrlを使用して、JSONの本文内のbase64でファイルを送信しようとしています。

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

DATA=$( base64 "$FILE" )

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

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

ファイルシステム内のファイルを読み取り、base64に変換してから本文内に送信する必要があることを考慮してください。


回答:


19

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

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

:あなたはまた、より多くのIのように、このバージョンを使用することができますecho { "data": "$DATA" } | curl -X POST -H "Content-Type: application/json" -d @- "$HOST"
morhook
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.