コマンドをカールするはじめに
カールは、コマンドラインツール、ネットワーク要求の役割であり、次いで上記の「標準出力」(標準出力)を示すデータを得るために抽出しました。
(
Linuxは、STDIN、STDOUT、STDERR、対応する番号が0で、それぞれ3つの標準入力と出力、があります。
STDIN標準入力、デフォルトの情報は、キーボードから読み込まれます。
STDOUTは標準出力、デフォルトの出力端子に結果です。
STDERRは標準エラー出力端子へのデフォルトの結果です。
デフォルトのSTDOUTとSTDERRが端末に表示されているので、区別するために、そこに、0、1の規定数であるSTDOUT、1 2で表されるSTDERRを表します。
)
それは、例えば、以下のWeb開発のためにそれを使用する方法を説明するために、複数のプロトコルをサポートしています。
Linuxのカールでは、ファイル転送ツールの使用のURLルールは、コマンドラインで働いている、あなたはそれが非常に強力なhttpコマンドラインツールであると言うことができます。これは、アップロードをサポートし、ファイルをダウンロードし、伝送ツールを統合しますが、伝統的に、ツールをダウンロードするためのURLを参照するために使用されています。
文法
構文:#カール[オプション] [URL]
一般的なパラメータ:
-A / - ユーザエージェント<文字列>提供サーバへのユーザエージェント
-b / -クッキー<名前=文字列 /ファイル>クッキー文字列またはファイルの読み取り位置 -c / -クッキージャー<ファイル>後の動作は、ファイルにクッキーを書き込むこと -C / - continue- <オフセット>再開回しで -D / -ダンプ-ヘッダー<ファイル > ファイルにヘッダー情報を書き込み -e / -リファラURL -f / -エラーがHTTP接続が失敗した表示されていないと失敗 - O / -出力は出力ファイルに書き込まれ / -O -リモート名は、出力ファイルに書き込まれ、リモートファイル名は保持 / -r - HTTP / 1.1またはFTPから取得範囲<範囲>サーバーのバイトは範囲 サイレントサイレントモード- -sを/。出力しません何も -T / -アップロードファイル<ファイル > アップロードファイル -u / -ユーザー<ユーザー[:パスワード]> サーバのユーザ名とパスワードを設定します -w / -書き込みアウト[形式を ] 出力が完了した後にどのようなものです -x / -プロキシ:<ホスト[ポート]> 指定されたポート上のHTTPプロキシ - #/ -プログレスバープログレスバーは、転送の現在の状態を示しています
例
まず、ページのソースコードを表示
直接URLでcurlコマンドの後には、ページのソースを見ることができます。我々www.sina.com例えばURL、(主な理由は、その短いページコードのウェブサイトを、選択します):
$カールwww.sina.com
<!DOCTYPE HTML PUBLIC " - // IETF // DTD HTML 2.0 // EN">
<HTML> <HEAD>
<TITLE> 301移動永久</ TITLE>
</ HEAD> <BODY>
<H1>永久的に移動</ H1>
<P>ドキュメントはこちら</a>の<aのhref="http://www.sina.com.cn/">を移動しました。</ P>
</ body> </ html>この
あなたがこのページを生き残るためにしたい場合は、 `wgetのコマンドを使用するのと同じです-o`パラメータを、使用することができます。
$カール-o [ファイル名] www.sina.com
第二に、自動的にジャンプ
いくつかのURLは自動的にジャンプしています。`-L`パラメータを使用して、カールは、新しいURLにジャンプします。
$カール-L www.sina.com
上記のコマンドを入力して、結果が自動的にwww.sina.com.cn.にジャンプ
第三に、表示ヘッダー情報
`-I`パラメータは、Webページのコードと共に、ヘッダHTTPレスポンスに表示させることができます。
$カール-i www.sina.com
HTTP / 1.0 301恒久的に移動
日付:土、2011年9月3日夜11時44分10秒GMTの
サーバー:Apacheの/ 2.0.54(Unixの)
場所:http://www.sina.com.cn/
のCache-Control:最大エージング= 3600は、
有効期限:日、2011年9月4日午前0時44分10秒は、GMTは
異なります受け入れエンコード
のContent-Length:231
のContent-Type:text / htmlのを。文字セット= ISO-8859-1
年齢:3239
X-キャッシュ:sh201-9.sina.com.cnからHIT
接続:近いです<!DOCTYPE HTML PUBLIC " - // IETF // DTD HTML 2.0 // EN">
<HTML> <HEAD>
<TITLE> 301移動永久</ TITLE>
</ HEAD> <BODY>
<H1>永久的に移動</ H1>
<P>ドキュメントはこちら</a>の<aのhref="http://www.sina.com.cn/">を移動しました。</ P>
</ body> </ html>この
`-I`パラメータのみヘッダ情報HTTP応答が表示されます。
第四に、表示通信プロセス
`-V`パラメータは、ポートと、HTTPリクエストヘッダ情報を含む、プロセス全体のHTTP通信に表示することができます。
$カール-v www.sina.com
www.sina.comポート80(#0)に()接続*について
* 61.172.201.195をしようと...接続
*に接続されwww.sina.com(61.172.201.195)ポート80(#0)
> GET / HTTP /1.1
>のUser-Agent:カール/ 7.21.3(i686の-pc-linux-gnuのよう)のlibcurl / 7.21.3のOpenSSL / 0.9.8oのzlib / 1.2.3.4 libidn / 1.18
>ホスト:www.sina.com
>受け入れます。 * / *
>
* HTTP 1.0、身体の後近いと仮定
<HTTP / 1.0 301恒久的に移動し
、<日:日、2011年9月4日午後12時42分39秒GMT
<サーバ:Apacheの/ 2.0.54(Unixの)
<所在地:のhttp:/ /www.sina.com.cn/
<のCache-Control:最大エージング= 3600
<有効期限:日、2011年9月4日午前1時42分39秒GMTを
<ヴァリ:受け入れ-エンコーディングを
<コンテンツの長さ:231
<コンテンツタイプ:text / htmlの。文字セット= ISO-8859-1
<X-キャッシュ:MISS sh201-19.sina.com.cnから
<接続:閉じる
<
<!DOCTYPE HTML PUBLIC " - // IETF // DTD HTML 2.0 // EN">
<htmlの> <HEAD>
<タイトル> 301移動永久</タイトル>
</ head> <body>
<H1>永続的移動</ H1>
<P>文書は、<HREF = "http://www.sina移動しました。 com.cn/">hereする</a>ます。</ p>
</ body> </ html>この
*閉会コネクション#0
あなたは上記の情報は十分ではないと思う場合は、次のコマンドでは、より詳細な通信処理を表示します。
$カール--trace output.txtとwww.sina.com
若しくは
$カール--trace-ASCII output.txtとwww.sina.com
実行した後、オープンoutput.txtとファイルの閲覧。
第五に、フォーム情報を送信します
フォームのオファーがGETとPOSTメソッド送信します。GETメソッドは限りデータはURL行に追加されると、比較的簡単です。
$カールexample.com/form.cgi?data=xxx
POSTメソッドは、データとURLを区切る--dataパラメーターを使用する必要がカールしなければなりません。
$ -X POST --dataカール "データ= xxxの" example.com/form.cgi
あなたのデータは、フォームをコード化するだけでなく、あなたは、符号化パラメータをカールすることができますされていない場合は--data-urlencode` `です。
$カール-X POST - データでurlencode "日付= 4月1日" example.com/form.cgi
六、HTTP動詞
カールデフォルトのHTTP動詞が-X`パラメータは、他の動詞をサポートして `使用し、GETです。
$カール-X POST www.example.com
$カール-X www.example.comをDELETE
七、ファイルのアップロード
ファイルアップロードフォームがこのであると仮定すると:
<フォームメソッド= "POST"のenctype = 'マルチパート/フォームデータ'アクション= "upload.cgi">
の<input type =ファイル名=アップロード>
の<input type =提出名=プレス値= "OK">
</フォーム>
だから、カールしてファイルをアップロードすることができます:
$カール--formアップロード= @ localfilename --form押し= OK [URL]
八、リファラーフィールド
時には、リファラフィールドは、あなたが来たところからのジャンプを表し、リクエストのヘッダー情報をhttpにする必要があります。
$カール--referer http://www.example.com http://www.example.com
九、ユーザエージェントフィールド
このフィールドは、クライアントのデバイス情報を示すために使用されます。時には、サーバーは、この分野に応じて、異なるデバイスのために、携帯電話やデスクトップのバージョンなど、さまざまな形式でのページに戻ります。
iPhone4のは、ユーザエージェントであります
Mozillaの/ 5.0(iPhone; U;のMac OS XのようなCPU iPhone OS 4_0; EN-US)のAppleWebKit / 532.9(ヤモリのようにKHTML、)バージョン/ 4.0.5モバイル/ 8A293サファリ/ 6531.22.7
カールはこれをシミュレートすることができます:
$カール--user-エージェント "[ユーザエージェント]" [URL]
テン、クッキー
使用 `--cookie`パラメータは、カールがクッキーを送信するのに役立ちます。
$カール--cookie "名前= XXX" www.example.com
特定クッキー値としてHTTPレスポンスヘッダ情報 `セットCookie`フィールドから得ることができます。
`-Cクッキー-file`は、ファイルサーバに保存することができ、クッキー、` -bクッキー-file`は、後続の要求のために、クッキー情報として、このファイルを使用することができますが返されます。
$カール-cクッキーhttp://example.com
$カール-bクッキーhttp://example.com
イレブン、増加ヘッダ情報
時には必要なHTTPリクエストに、ヘッダ自体を追加します。`--Header`パラメータは、この役割を再生することができます。
--header $カール "のContent-Type:アプリケーション/ JSON" http://example.com
十二、HTTP認証
いくつかのドメインのHTTP認証が必要とされ、その後、 `--user`パラメータを使用する必要がカール。
名前--user $カール:パスワードexample.com