curlコマンドの使用。HTTPリクエスト、ファイルダウンロード、FTPアップロードとダウンロード
2022-03-01 05:59:02
この記事へのリンク https://blog.csdn.net/xietansheng/article/details/84637993
1. curlコマンドの紹介
cURL
(CommandLine Uniform Resource Locator)と呼ばれる、コマンドライン端末でURL構文を用いて使用するWebリクエストツールで、HTTP、HTTPS、FTPなどのプロトコルに対応しています。 cURLは、アプリケーション開発用にlibcurlとしても提供されています。
LinuxとMACは一般的にcurlがデフォルトでインストールされているので、ターミナルで直接コマンドを使用することができます。 curl.haxx.se をクリックしてダウンロードし、インストールしてください。
Windowsシステムのcurlダウンロードアドレスです。 https://curl.haxx.se/windows/ コマンド実行ファイルは、ダウンロード・解凍後、binフォルダにあります。
2. curlコマンドの書式
2.1 基本構文
curl [options...]
- cURL ドキュメントのトップページ。 https://curl.haxx.se/docs/manpage.html
- cURLのヘルプガイドです。 https://curl.haxx.se/docs/manual.html
2.2 共通パラメータ
<ブロッククオート追記:(H)はHTTP/HTTPSのみ、(F)はFTPのみを意味します。
-
共通のパラメータです。
Show Info -h/--help # Print help information -V/--version # Show version information -s/--silent # Silent mode, no output -i/--include # Output includes headers information -v/--verbose # Show details -#/--progress-bar # Show the transfer as a progress bar
-
共通のパラメータです。
Headers -H/--header LINE (H) # Add a request header, multiple -H parameters can be added, # Parameter format: -H "NAME: VALUE" -A/--user-agen STRING (H) # User-Agent field of the request header -e/--referer URL (H) # The Referer field of the request header -r/--range RANGE (H) # The Range field of the request header -b/--cookie STRING/FILE (H) # The cookie field of the request header, provided as a string, # or read from the specified cookie file -c/--cookie-jar FILE (H) # Save the cookie in the response header to the specified file -D/--dump-header FILE # Save the headers information to the specified file -I/--head # Show only the document information (only the response headers)
-
共通のパラメータです。
Request Content # Execute the command, or request method if it is HTTP, such as: GET, POST, PUT, DELETE, etc. # If it's FTP, it executes the FTP protocol command -X/--request COMMAND # HTTP POST request content (and automatically issue POST request), for example: aa=bb&cc=dd -d/--data DATA (H) # HTTP multipart POST form data, (and automatically issue a POST request) # Multiple form fields can add multiple -H parameters, if it is a file parameter, the path value needs to be preceded by @ # Reference format: -F "name1=@/filepath" -F "name2=stringvalue" -F/--form CONTENT (H)
-
共通のパラメータです。
Response Content -o/--output FILE FILE # Output the response to the specified file -O/--remote-name # Save the response to the current directory using the URL's filename as the filename -C/--continue-at OFFSET # Continue the transmission from the offset position at the breakpoint
-
共通のパラメータです。
Other -y/--speed-time SECONDS # Connection timeout in seconds, default is 30 -m/--max-time SECONDS # Read timeout, must finish transferring data within this time, unit: second --limit-rate RATE # Transfer speed limit, unit: Byte/s -x/--proxy [PROTOCOL://]HOST[:PORT] # Set proxy -U/--proxy-user USER[:PASSWORD] # Username and password for the proxy -u/--user USER[:PASSWORD][;OPTIONS] # Set the server's user password and login options --cacert FILE (SSL) # Use the specified CA certificate -P/--ftp-port ADR (F) # Specify the port for FTP transfers -T/--upload-file FILE # Upload a file to the specified URL (http/ftp) location, # Reference format: -T "file1" or -T "{file1,file2}" -Q/--quote CMD (F/SFTP) # Execute commands, -X executes only one command, -Q executes multiple commands, # Multiple commands will be executed in order, # Reference format: -Q "cmd1" -Q "cmd2"
3. curlコマンドの使用例
3.1 HTTP/HTTPS ネットワークリクエスト
- 通常のGETリクエスト
curl https://www.baidu.com/ # GET request, output response content
curl -I https://www.baidu.com/ # GET request, output response headers only
curl -i https://www.baidu.com/ # GET request, output response headers, response content
curl -v https://www.baidu.com/ # GET request, output communication process, header information, response content, etc.
- データを送信するためのPOSTリクエスト
# POST to submit JSON data (\ means the command statement is not finished, continue on a new line)
curl -H "Content-Type: application/json" \
-d '{"username":"hello", "password":"123456"}' \
http://localhost/login
# POST submit form data
curl -F "username=hello" \
-F "password=123456" \
-F "[email protected]" \
http://localhost/register
- ファイルのダウンロード
# Specify the name of the saved file to download the file
curl https://www.baidu.com -o baidu.txt
# Save the downloaded file using the resource filename specified by the URL (the URL must point to a specific filename)
curl https://www.baidu.com/index.html -O
# Specify the value of the Usaer-Agent and Referer request headers, to download the file
curl -A "Mozilla/5.0 Chrome/70.0.3538.110 Safari/537.36" \
-e "https://www.baidu.com/" \
https://www.baidu.com/index.html -O
3.2 FTPによるファイルのアップロード/ダウンロード
FTPサーバーのアドレスが:
192.168.0.100
ユーザー名は:
user
パスワードは:
passwd
(1) ファイルを見る
# View a list of files in the specified FTP directory (the directory must end with "/")
curl ftp://192.168.0.100/aaDir/ -u "user:passwd"
# View the contents of the FTP specified file (output directly to the terminal)
curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd"
# Another way to write the username and password (to view the specified directory on the FTP server)
curl ftp://user:[email protected]/aaDir/
(2) ファイルのアップロード
# Upload the aa.txt file to the FTP directory (the directory must end with "/"), and save it under the original file name
curl ftp://192.168.0.100/aaDir/ -u "user:passwd" -T "aa.txt"
# Upload the aa.txt file to the specified FTP directory, and save it under the name bb.txt
curl ftp://192.168.0.100/aaDir/bb.txt -u "user:passwd" -T "aa.txt"
# Upload multiple files at the same time
curl ftp://192.168.0.100/aaDir/ -u "user:passwd" -T "{aa.txt,bb.txt}"
(3) ファイルをダウンロードする
# Download the FTP specified file /aaDir/aa.txt, save it to the current directory with the original file name
curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd" -O
# Download the FTP file /aaDir/aa.txt, save it as bb.txt
curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd" -o bb.txt
(4) FTPプロトコルのコマンドを実行する
curl FTPコマンド形式を実行する。
-
単一のコマンドです。
curl [-options] <ftpUrl> -X "FTP command"
-
複数のコマンド
curl [-options] <ftpUrl> -Q "FTP command" -Q "FTP command" # # Create a folder, create the bbDir folder under the /aaDir/ directory (the directory must end with "/") # curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "MKD bbDir" # curl # delete the folder, delete the bbDir folder in the /aaDir/ directory (the folder must be empty) # curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "RMD bbDir" # # Delete the file, delete the aa.txt file in the /aaDir/ directory # curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "DELE aa.txt" # # rename, rename requires two consecutive commands, use two -Q arguments to execute two consecutive commands (must be RNFR first, then RNTO) # curl -u "user:passwd" ftp://192.168.0.100/ -Q "RNFR OldPath" -Q "RNTO NewPath"
参考までに他のFTPプロトコルのコマンドを紹介します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例