コマンドラインからCurl経由でPOSTリクエストを行う必要があります。このリクエストのデータはファイルにあります。私はPUTを介してこれを--upload-file
オプションで実行できることを知っています。
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
コマンドラインからCurl経由でPOSTリクエストを行う必要があります。このリクエストのデータはファイルにあります。私はPUTを介してこれを--upload-file
オプションで実行できることを知っています。
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
回答:
あなたは--data-binary
議論を探しています:
curl -i -X POST host:port/post-file \
-H "Content-Type: text/xml" \
--data-binary "@path/to/file"
上記の例では、-i
すべてのヘッダーを出力して何が起こっているかを確認できるようにし、-X POST
これが投稿であることを明示しています。これらの両方は、ワイヤの動作を変更せずに安全に省略できます。ファイルへのパスの前には@
記号を付ける必要があるためcurl
、ファイルから読み取ることができます。
.xml
@
部分は非常に重要です!
-d
はcurl
改行を削除しますが、--data-binary
そうしません。
コマンドラインからCurl経由でPOSTリクエストを行う必要があります。このリクエストのデータはファイルにあります...
あなたがする必要があるのは、--data
引数が@
:で始まることです
curl -H "Content-Type: text/xml" --data "@path_of_file" host:port/post-file-path
たとえば、呼び出されたファイルにデータがあるstuff.xml
場合は、次のようにします。
curl -H "Content-Type: text/xml" --data "@stuff.xml" host:port/post-file-path
stuff.xml
ファイル名は、ファイルへの相対パスまたはフルパスで置き換えることができます @../xml/stuff.xml
、@/var/tmp/stuff.xml
...
--data "name@stuff"
。
回答のほとんどはここで完璧ですが、私は私の特定の問題のためにここに上陸したとき、私はPOSTメソッドを使用してバイナリファイル(XLSXスプレッドシート)をアップロードする必要があり、私は一つのことを見欠落している、すなわち通常はそのちょうどあなたが持つかもしれない、あなたはロードファイルではありません私の場合と同様に、ファイルへのコメントやファイルへのタグなど、より多くのフォームデータ要素。したがって、それは私のユースケースであるので、ここに追加して、他の人を助けることができるようにしたいと思います。
curl -POST -F comment=mycomment -F file_type=XLSX -F file_data=@/your/path/to/file.XLSX http://yourhost.example.com/api/example_url
HTTPSではデフォルトのファイルサイズ制限があるため、HTTP接続を使用する必要がありました。
curl -i -X 'POST' -F 'file=@/home/testeincremental.xlsx' 'http://example.com/upload.aspx?user=example&password=example123&type=XLSX'