この記事はGithub.com/niumoo/JavaNotesに含まれており、Javaプログラマーが習得する必要のあるコア知識がさらにあります。スターや提案を歓迎します。
私の公式アカウントをフォローすることを歓迎します、記事は毎週更新されます。
CURLはオープンソースで無料のプロジェクトであり、主にコマンドラインツールのcURLとlibcurlです。CURLは任意のネットワーク送信プロトコルを処理できますが、特定のデータ処理は必要ありません。
cURLでサポートされる通信プロトコルは、DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、MQTT、POP3、POP3S、RTMP、RTMPS、RTSP、SCP、SFTP、SMB、SMBSなどの非常に豊富です。 、SMTP、SMTPS、TELNETおよびTFTP。cURLソースコードを表示するには、公式のGithubにアクセスしてください。
cURLをインストールするとどうなりますか?
ubuntu / Debian。
sudo apt install curl
CentOS / Fedora。
sudo yum install curl
ウィンドウズ。
Gitをインストールしている場合、Git Bashにはcurlが付属しています。開発者としてgitをお持ちでない場合は、手動でのみダウンロードできます。
1.ソースコードをリクエストする
直接カール。
$ curl http://wttr.in/
上でリクエストされたサンプルURLは天気のウェブサイトです。これは非常に興味深く、リクエストされたIP情報に基づいてあなたの場所の気象条件を返します。
私がこの記事を書いているとき、私が住んでいる上海では雨が降っていて、窓の外の雨は終わりがありません。
2.ファイルのダウンロード
-o
ダウンロードREADMEテキストファイルreadme.txtを保存するなど、wgetコマンドと同様の保存ファイルを使用します。ファイル名をカスタマイズする必要がある場合-O
は、URLでカスタムファイル名を使用できます。
$ curl -o readme.txt https://mirrors.nju.edu.cn/kali/README
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 159 100 159 0 0 1939 0 --:--:-- --:--:-- --:--:-- 1939
ダウンロードしたファイルには、データサイズ、伝送速度、残り時間などのダウンロードステータスが表示されます。-s
パラメータを使用して、スケジュールを無効にすることができます。
$ curl -o readme.txt https://mirrors.nju.edu.cn/kali/README
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 159 100 159 0 0 1939 0 --:--:-- --:--:-- --:--:-- 1939
$
$ curl -o readme.txt https://mirrors.nju.edu.cn/kali/README -s
--process-bar
パラメータを使用して、進行状況バーを表示するスケジュールを作成することもできます。
$ curl -o readme.txt https://mirrors.nju.edu.cn/kali/README --progress-bar
########################################################################################## 100.0%
-C -
パラメータを使用した、強力で自然なShoudaoqinlaiHTTPの同義語としてのcURL。以下は、再開可能なダウンロードでubuntu20.04イメージをダウンロードする例です。
$ curl -O https://mirrors.nju.edu.cn/ubuntu-releases/20.04/ubuntu-20.04-desktop-amd64.iso --progress-bar
## 1.7%
^C
$ curl -C - -O https://mirrors.nju.edu.cn/ubuntu-releases/20.04/ubuntu-20.04-desktop-amd64.iso --progress-bar
### 2.4%
^C
$ curl -C - -O https://mirrors.nju.edu.cn/ubuntu-releases/20.04/ubuntu-20.04-desktop-amd64.iso --progress-bar
### 2.7%
^C
$
何?ダウンロード時にインターネットの速度を上げすぎたくないですか?--limit-rate
速度を制限してください。
curl -C - -O https://mirrors.nju.edu.cn/ubuntu-releases/20.04/ubuntu-20.04-desktop-amd64.iso --limit-rate 100k
何?FTPサーバーからファイルを再度ダウンロードしますか?慌てる必要はありません。
curl -u user:password -O ftp://ftp_server/path/to/file/
3.応答ヘッダー
-i
パラメータ表示の応答ヘッダー情報を使用します。使用-I
すると、応答ヘッダー情報のみを表示できます。
$ curl -I http://wttr.in
HTTP/1.1 200 OK
Server: nginx/1.10.3
Date: Sat, 30 May 2020 09:57:03 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 8678
Connection: keep-alive
Access-Control-Allow-Origin: *
4.リクエストメソッド(GET / POST /…)
-X
イージーモード変更リクエストを使用します。
$ curl -X GET http://wttr.in
$ curl -X POST http://wttr.in
$ curl -X PUT http://wttr.in
...
5.リクエストパラメータ
パラメータを渡すことname
は未读代码
一例です。
パラメータを直接取得し、スプライシングパラメータをURLします。
$ curl -X GET http://wttr.in?name=未读代码
--data
パラメータを設定するために使用する方法を投稿します。
$ curl -X POST --data "name=未读代码" http://wttr.in
カスタムリクエストヘッダーパラメータの可能性があります、--harder
追加します。
$ curl --header "Content-Type:application/json" http://wttr.in
6.ファイルのアップロード
これよりもはるかに強力なcURL、フォームが送信され、コンテンツファイルのアップロードも記載されています。使用する必要がある-F
か、-D
パラメータ-F
によってリクエストヘッダーが自動的に追加されますContent-Type: multipart/form-data
が、-D
それはContent-Type : application/x-www-form-urlencoded
です。
たとえば、protrait.jpgの画像をアップロードします。
$ curl -F profile=@portrait.jpg https://example.com/upload
名前と年齢のパラメータを含むフォームを送信します。
curl -F name=Darcy -F age=18 https://example.com/upload
パラメータに対応する内容をファイルから読み取ることもできます。
curl -F "content=<达西的身世.txt" https://example.com/upload
アップロード時にコンテンツタイプを指定します。
curl -F "content=<达西的身世.txt;type=text/html" https://example.com/upload
他のパラメータと一緒にファイルをアップロードします。
curl -F 'file=@"localfile";filename="nameinpost"' example.com/upload
7.URLワイルドカード
cURLは、複数のURLに一致するように実現できます{}
。組み合わせて使用して、特定の期間で区切られたURLコンマを識別し[]
、スコープパラメータを示すことができます。
# 请求 www.baidu.com 和 pan.baidu.com 和 fanyi.baidu.com
$ curl http://{
www,pan,fanyi}.baidu.com
# 虚构网址1-10开头的baidu.com,然后请求
$ curl http://[1-10].baidu.com
# 虚构网址a-z开头的baidu.com,然后请求
$ curl http://[a-z].baidu.com
この方法は、たとえば、特定のWebサイトのURLパターンを見つけた場合に役立つことがあります。
8.クッキーの使用
-c
応答としてCookieに格納されているパラメーターを使用して要求すると、要求に応じ-b
て特定のCookieを使用できます。
$ curl -c wdbyte_cookies http://www.wdbyte.com
$ curl -b wdbyte_cookes http://www.wdbyte.com
総括する
上記はcURLの一般的な使用法です。最後に、ちょっとしたコツを紹介します。ChromeやFirefoxなどのブラウザは、リクエストをcURLステートメントとして直接コピーできます。保存してから次回テストを依頼するととても便利です。
参照
- https://curl.haxx.se/docs/manpage.html
最後の言葉
記事はGithub.com/niumoo/JavaNotesに含まれています。スターとコメントは大歓迎です。第一線の企業へのインタビューサイト、Javaプログラマーが習得する必要のあるコア知識やその他の記事もあり、私のテキストの多くが整理されています。スターへようこそ、それを改善し、私たちが一緒に優秀になることを願っています。
記事が役に立ったら、「いいね」または「共有」をクリックできます。すべてサポートされています。すべて気に入っています。
記事は毎週継続的に更新されます。更新された記事や共有の乾物をリアルタイムでフォローするには、「未読コード」の公開アカウントまたは私のブログをフォローしてください。