回答:
フィールドあり:
curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi
個別に指定されたフィールドの場合:
curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi
マルチパート:
curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi
フィールドとファイル名を持つマルチパート:
curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi
データなし:
curl --data '' https://example.com/resource.cgi
curl -X POST https://example.com/resource.cgi
curl --request POST https://example.com/resource.cgi
詳細については、cURLのマニュアルを参照してください。Webブラウザをエミュレートする上でcURLのチュートリアルが便利です。
libcurlではcurl_formadd()
、通常の方法でフォームを送信する前に、関数を使用してフォームを作成します。詳細については、libcurlのドキュメントを参照してください。
大きなファイルの場合、アップロードの進行状況を示すパラメーターを追加することを検討してください。
curl --tr-encoding -X POST -v -# -o output -T filename.dat \
http://example.com/resource.cgi
-o output
必要とされ、そうでなければプログレスバーは表示されません。
--data-urlencode
(ダッシュなし)、少なくとも最近のバージョンでは
With Fields
、いつ、いつそれMultipart
をしWithout Data
ますか?
--data
を使用できます-d
。
XMLを含むRESTful HTTP POSTの場合:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"
またはJSONの場合、これを使用します。
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"
これにより、指定されたファイルの内容が読み取らfilename.txt
れ、ポストリクエストとして送信されます。
curl -X POST
HTTP POSTリクエストを意味し、-d
パラメーター(長いバージョン:)--data
はcurlに次のものがPOSTパラメーターになることを伝え@filename
、ファイルの内容をfilename
パラメーターとして指定します。このアプローチは、Twitter、Facebook、Ruby on RailsなどのさまざまなWebサービス、CouchDBなどのデータベースのHTTP APIで見られるRESTful HTTP APIで最適に機能します。RESTはRepresentational State
-X POST
それが暗示されているので、あなたはやめることができると思います-d
。
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi
見つかった例であるカール例マニュアル。
上記が機能しない場合でも、アンパサンドには%26を使用します。
curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
サイトにログインする場合は、次を実行します。
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
最初の要求は、セッションCookie(ログインが成功したときに提供される)を「ヘッダー」ファイルに保存します。これ以降、そのCookieを使用して、ブラウザーでログインした後に通常アクセスするWebサイトの任意の部分に対してユーザーを認証できます。
curl -v --data-ascii var=value http://example.com
さらに多くのオプションがありますcurl --help
。詳細を確認してください。
怠け者の場合、google-chromeを入手してすべての作業を行うことができます。
ChromeはすべてのリクエストデータをcURL構文でコピーします。
Chromeは使用しています--data 'param1=hello¶m2=world'
あなたは、単一使用して、より読みやすくすることができた-d
か、-F
あなたはどちらかとすることができる、送信したい要求POSTのタイプに応じて、パラメータごとのapplication/x-www-form-urlencoded
か、multipart/form-data
それに応じて。
これは、POST-EDになりますapplication/x-www-form-urlencoded
(ファイルのアップロードが含まれていないフォームの大半に使用します):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-d param1=hello \
-d name=dinsdale
以下のためのmultipart/form-data
POSTの使用-F
(典型的には、ファイルのアップロードを含む、またはフォームで使用されるフィールドの順序は重要である、または同じ名前の複数のフィールドが必要とされる場合)。
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-F param1=hello \
-F name=dinsdale \
-F name=piranha
User-Agent
ヘッダは、通常必要とされていないが、私は念のためにそれを投げました。以下~/.curlrc
を含むファイルを作成することにより、リクエストごとにユーザーエージェントを設定する必要がなくなります。User-Agent: "Mozilla/2.2"
curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/data