Curl 官方下載地址 可下載不同平臺不同版本的安裝包,本次使用的是Windows解壓版本curl-8.0.1_9-win32-mingw.zip
。
1.是什么
1.1 curl
curl是一個開源的命令行工具和庫,用于在終端和腳本中進行網(wǎng)絡(luò)數(shù)據(jù)傳輸。它支持多種協(xié)議,如HTTP、HTTPS、FTP、SMTP等,可以通過URL進行數(shù)據(jù)傳輸和通信。
curl的功能非常強大,它可以執(zhí)行各種操作,包括發(fā)送HTTP請求、下載文件、上傳文件、進行身份驗證、處理cookie等。它提供了豐富的選項和參數(shù),可以靈活地配置請求和處理服務(wù)器響應(yīng)。
通過curl,我們可以輕松地在命令行中執(zhí)行各種網(wǎng)絡(luò)操作,比如獲取網(wǎng)頁內(nèi)容、測試API接口、下載文件等。同時,由于curl是一個非常常見和流行的工具,幾乎在所有主流操作系統(tǒng)中都有可用的版本。
除了作為命令行工具,curl還提供了一個C語言庫,可以在程序中嵌入和使用。這使得開發(fā)人員可以利用curl的功能和接口,編寫自己的網(wǎng)絡(luò)應(yīng)用程序。
總而言之,curl是一個功能強大的命令行工具和庫,用于在終端和腳本中進行網(wǎng)絡(luò)數(shù)據(jù)傳輸和通信。它在各種場景下都是一個非常有用的工具,特別是在自動化測試、調(diào)試和開發(fā)過程中。
我們曾經(jīng)用wget實現(xiàn)了網(wǎng)站數(shù)據(jù)的爬取,想必curl應(yīng)該也是可以的。
1.2 bat和cmd
.bat和.cmd是Windows操作系統(tǒng)中常見的批處理腳本文件的擴展名。它們在功能上非常相似,但有一些區(qū)別。
-
執(zhí)行方式:.bat文件通常由舊版本的Windows命令解釋器(COMMAND.COM)執(zhí)行,而.cmd文件通常由新版本的Windows命令解釋器(CMD.EXE)執(zhí)行。CMD.EXE提供了更多的功能和特性,因此.cmd文件更加靈活。
-
執(zhí)行環(huán)境:.bat文件在Windows的實模式下運行,而.cmd文件在Windows的保護模式下運行。保護模式提供了更好的內(nèi)存管理和系統(tǒng)資源支持。
-
可移植性:由于.bat文件是在舊版本的命令解釋器下執(zhí)行,它們的兼容性可能受到限制。相比之下,.cmd文件在更廣泛的Windows系統(tǒng)上具有更好的兼容性。
-
命令擴展:.cmd文件支持更多的命令擴展,如IF EXIST、FOR /F等,而.bat文件可能不支持這些擴展。
-
腳本編寫:由于.cmd文件支持更多的命令擴展和功能,因此它們提供了更強大的腳本編寫能力。
總的來說,.cmd文件比.bat文件更加靈活和功能豐富,并提供更好的可移植性。如果你需要使用更多的命令擴展或希望在較新的Windows系統(tǒng)上運行腳本,建議使用.cmd擴展名。
2.常用命令
注意:以下命令未經(jīng)驗證。
2.1 發(fā)送GET請求并顯示響應(yīng)頭信息
# 這個命令將向"https://api.example.com/users"發(fā)送一個HEAD請求,并顯示服務(wù)器返回的響應(yīng)頭信息,而不包括響應(yīng)體。
curl -I https://api.example.com/users
2.2 顯示詳細的請求和響應(yīng)信息
# 使用"-v"選項,這個命令將顯示完整的請求和響應(yīng)信息,包括請求頭、響應(yīng)頭和響應(yīng)體。
curl -v https://api.example.com/users
2.3 限制重定向次數(shù)
# 通過"-L"選項,這個命令將跟隨重定向,并使用"--max-redirs"選項限制重定向的次數(shù)為3次。
curl -L --max-redirs 3 https://example.com
2.4 帶Json數(shù)據(jù)的Post請求發(fā)送
curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 25}' https://api.example.com/users
2.5 帶文件的Post請求發(fā)送
curl -X POST -H "Content-Type: application/octet-stream" --data-binary @file.txt https://api.example.com/upload
2.6 使用代理服務(wù)器發(fā)送請求
# 通過"-x"選項,這個命令將使用名為"proxy.example.com"、端口為8080的代理服務(wù)器發(fā)送請求。
curl -x proxy.example.com:8080 https://api.example.com/users
2.7 下載文件并保存到指定路徑
curl -o /path/to/save/file.zip https://example.com/file.zip
這些是一些常用的curl命令示例,小伙伴們可以根據(jù)具體需求和場景使用不同的選項和參數(shù)來定制curl的行為。記得查閱curl的官方文檔以獲取更多詳細的選項和用法說明。
3.實例分享
3.1 直接下載
example1.cmd
文件內(nèi)容:
@echo off
cd
cd ./curl/bin
set /p exampleUrlHost=請輸入服務(wù)的IP地址:
set /p exampleUrlPort=請輸入服務(wù)的端口:
:start
echo **********************報告保存腳本**********************
echo 根據(jù)以下提示執(zhí)行
echo 0 退出
echo 1 保存年度報告
echo 2 保存月度報告
echo 3 保存當(dāng)天報告
set /p exampleUrlIndex=請輸入要保存的結(jié)果序號:
if %exampleUrlIndex% == 1 (
set exampleUrlPath=/example/exampleYear
)
if %exampleUrlIndex% == 2 (
set exampleUrlPath=/example/exampleMonth
)
if %exampleUrlIndex% == 3 (
set exampleUrlPath=/example/exampleDay
)
if %exampleUrlIndex% == 0 (
exit
)
echo 正在保存...
curl http://%exampleUrlHost%:%exampleUrlPort%%exampleUrlPath%
echo 保存完成。
goto start
3.2 保存后復(fù)制
這里要注意的是,example2.cmd
文件內(nèi)容里的url雖然名稱是相同的,但是并不是一樣的接口,example1.cmd
里的是直接保存文件,example2.cmd
里邊的是將文件寫入到響應(yīng)流內(nèi)。
@echo off
cd
cd ./curl/bin
FOR /F "tokens=1-3 delims=/ " %%A IN ('DATE /T') DO SET exampleDate=%%A%%B%%C
set /p exampleUrlHost=請輸入服務(wù)的IP地址:
set /p exampleUrlPort=請輸入服務(wù)的端口:
:start
echo **********************報告保存腳本**********************
echo 根據(jù)以下提示執(zhí)行
echo 0 退出
echo 1 保存年度報告
echo 2 保存月度報告
echo 3 保存當(dāng)天報告
set /p exampleUrlIndex=請輸入要保存的結(jié)果序號:
if %exampleUrlIndex% == 1 (
set exampleUrlPath=/example/exampleYear
set exampleFileType=年度報告
)
if %exampleUrlIndex% == 2 (
set exampleUrlPath=/example/exampleMonth
set exampleFileType=月度報告
)
if %exampleUrlIndex% == 3 (
set exampleUrlPath=/example/exampleDay
set exampleFileType=當(dāng)天報告
)
if %exampleUrlIndex% == 0 (
exit
)
for /F "tokens=1-3 delims=:." %%A in ("%TIME%") do (
set "hour=%%A"
set "minute=%%B"
set "second=%%C"
)
set /A "time_in_seconds=hour*3600 + minute*60 + second"
echo 正在導(dǎo)出...
curl http://%exampleUrlHost%:%exampleUrlPort%%exampleUrlPath% --output ../../reportFile/%exampleFileType%(%exampleDate%)%time_in_seconds%.xlsx
echo 導(dǎo)出完成。
goto start
3.3 實際演示圖
目錄結(jié)構(gòu)是這樣的:
# 代碼里的 cd ./curl/bin 就是為了使用 curl 命令
cd ./curl/bin
example1的執(zhí)行界面:
example2的執(zhí)行界面:文章來源:http://www.zghlxwxcb.cn/news/detail-464718.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-464718.html
到了這里,關(guān)于Curl【實例 01】curl下載使用及cmd實例腳本分享(通過請求下載文件)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!