Curl【实例 01】curl下载使用及cmd实例脚本分享(通过请求下载文件)

news/2025/1/12 9:56:34/

Curl 官方下载地址 可下载不同平台不同版本的安装包。

这里写目录标题

    • 1.是什么
      • 1.1 curl
      • 1.2 bat和cmd
    • 2.常用命令
      • 2.1 发送GET请求并显示响应头信息
      • 2.2 显示详细的请求和响应信息
      • 2.3 限制重定向次数
      • 2.4 带Json数据的Post请求发送
      • 2.5 带文件的Post请求发送
      • 2.6 使用代理服务器发送请求
      • 2.7 下载文件并保存到指定路径
    • 3.实例分享
      • 3.1 直接下载
      • 3.2 保存后复制
      • 3.3 实际演示图

1.是什么

1.1 curl

curl是一个开源的命令行工具和库,用于在终端和脚本中进行网络数据传输。它支持多种协议,如HTTP、HTTPS、FTP、SMTP等,可以通过URL进行数据传输和通信。

curl的功能非常强大,它可以执行各种操作,包括发送HTTP请求、下载文件、上传文件、进行身份验证、处理cookie等。它提供了丰富的选项和参数,可以灵活地配置请求和处理服务器响应。

通过curl,我们可以轻松地在命令行中执行各种网络操作,比如获取网页内容、测试API接口、下载文件等。同时,由于curl是一个非常常见和流行的工具,几乎在所有主流操作系统中都有可用的版本。

除了作为命令行工具,curl还提供了一个C语言库,可以在程序中嵌入和使用。这使得开发人员可以利用curl的功能和接口,编写自己的网络应用程序。

总而言之,curl是一个功能强大的命令行工具和库,用于在终端和脚本中进行网络数据传输和通信。它在各种场景下都是一个非常有用的工具,特别是在自动化测试、调试和开发过程中。

我们曾经用wget实现了网站数据的爬取,想必curl应该也是可以的。

1.2 bat和cmd

.bat和.cmd是Windows操作系统中常见的批处理脚本文件的扩展名。它们在功能上非常相似,但有一些区别。

  1. 执行方式:.bat文件通常由旧版本的Windows命令解释器(COMMAND.COM)执行,而.cmd文件通常由新版本的Windows命令解释器(CMD.EXE)执行。CMD.EXE提供了更多的功能和特性,因此.cmd文件更加灵活。

  2. 执行环境:.bat文件在Windows的实模式下运行,而.cmd文件在Windows的保护模式下运行。保护模式提供了更好的内存管理和系统资源支持。

  3. 可移植性:由于.bat文件是在旧版本的命令解释器下执行,它们的兼容性可能受到限制。相比之下,.cmd文件在更广泛的Windows系统上具有更好的兼容性。

  4. 命令扩展:.cmd文件支持更多的命令扩展,如IF EXIST、FOR /F等,而.bat文件可能不支持这些扩展。

  5. 脚本编写:由于.cmd文件支持更多的命令扩展和功能,因此它们提供了更强大的脚本编写能力。

总的来说,.cmd文件比.bat文件更加灵活和功能丰富,并提供更好的可移植性。如果你需要使用更多的命令扩展或希望在较新的Windows系统上运行脚本,建议使用.cmd扩展名。

2.常用命令

注意:以下命令未经验证。

2.1 发送GET请求并显示响应头信息

# 这个命令将向"https://api.example.com/users"发送一个HEAD请求,并显示服务器返回的响应头信息,而不包括响应体。
curl -I https://api.example.com/users

2.2 显示详细的请求和响应信息

# 使用"-v"选项,这个命令将显示完整的请求和响应信息,包括请求头、响应头和响应体。
curl -v https://api.example.com/users

2.3 限制重定向次数

# 通过"-L"选项,这个命令将跟随重定向,并使用"--max-redirs"选项限制重定向的次数为3次。
curl -L --max-redirs 3 https://example.com

2.4 带Json数据的Post请求发送

curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 25}' https://api.example.com/users

2.5 带文件的Post请求发送

curl -X POST -H "Content-Type: application/octet-stream" --data-binary @file.txt https://api.example.com/upload

2.6 使用代理服务器发送请求

# 通过"-x"选项,这个命令将使用名为"proxy.example.com"、端口为8080的代理服务器发送请求。
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命令示例,小伙伴们可以根据具体需求和场景使用不同的选项和参数来定制curl的行为。记得查阅curl的官方文档以获取更多详细的选项和用法说明。

3.实例分享

3.1 直接下载

example1.cmd文件内容:

@echo offcd
cd ./curl/bin
set /p exampleUrlHost=请输入服务的IP地址:
set /p exampleUrlPort=请输入服务的端口::start
echo **********************报告保存脚本**********************
echo 根据以下提示执行
echo 0 退出
echo 1 保存年度报告
echo 2 保存月度报告
echo 3 保存当天报告set /p exampleUrlIndex=请输入要保存的结果序号:
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 保存后复制

这里要注意的是,example2.cmd文件内容里的url虽然名称是相同的,但是并不是一样的接口,example1.cmd里的是直接保存文件,example2.cmd里边的是将文件写入到响应流内。

@echo offcd
cd ./curl/binFOR /F "tokens=1-3 delims=/ " %%A IN ('DATE /T') DO SET exampleDate=%%A%%B%%Cset /p exampleUrlHost=请输入服务的IP地址:
set /p exampleUrlPort=请输入服务的端口::start
echo **********************报告保存脚本**********************
echo 根据以下提示执行
echo 0 退出
echo 1 保存年度报告
echo 2 保存月度报告
echo 3 保存当天报告set /p exampleUrlIndex=请输入要保存的结果序号:
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=当天报告
)
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 正在导出...
curl http://%exampleUrlHost%:%exampleUrlPort%%exampleUrlPath% --output ../../reportFile/%exampleFileType%(%exampleDate%)%time_in_seconds%.xlsx
echo 导出完成。goto start

3.3 实际演示图

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/107707.html

相关文章

docker启动MYSQL8并挂载数据目录

1.创建需要docker挂载的数据目录 mkdir -p /datah/mydata/mysql/conf mkdir -p /datah/mydata/mysql/data mkdir -p /datah/mydata/mysql/log mkdir -p /datah/mydata/mysql/mysql-files 2. 在目录下面 /datah/mydata/mysql/conf 创建配置文件 my.cnf [client] default-charact…

HTTPS的工作流程

hi,大家好,好久不见,今天为大家带来HTTPS协议的工作流程 认识HTTPS 加密是什么 HTTPS的工作流程 1.认识HTTPS HTTPS也是应用层协议,让我们再来回忆一下TCP/IP五层协议模型 HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP协议在传输的时候是以…

openGauss子事务管理分析(PLpgSQL中的异常子事务)

1 背景 PostgreSQL中的存储过程不支持使用savepoint、rollback to。原因是PG的存储过程中,异常处理使用子事务来实现的,也就是一旦发生异常,当前procedure的begin块中执行过的所有语句都会直接回滚: procedurebegininsert into …

TCP/IP协议详解笔记——ARP协议和RARP协议

TCP/IP协议详解笔记——ARP协议和RARP协议 ARP:地址解析协议 工作过程 帧格式 以太网目的地址:目的主机的硬件地址。目的地址全为1的特殊地址是广播地址。 以太网源地址:源主机的硬件地址。 帧类型:对于ARP协议&#…

C/C++ 友元(Friend)机制的利弊关系【友元函数、友元类】

前言: 友元(Friend)是C中的一个特殊机制,它可以实现在某些情况下,一个类的私有成员可以被其他类或者函数访问,从而保证代码的灵活度和可维护性。本篇文章将全面介绍C中的友元机制,包括友元函数、…

618电商节必看:如何提高APP广告变现效率?备战攻略分享!

​随着618电商节的临近,各大电商平台开始了激烈的促销活动。在这个时候,作为APP开发者,如何让自己的APP脱颖而出,吸引更多用户,并将流量变现成为一大难题。本文将为您提供一些备战攻略以及参数优化,助力开发…

C语言学习分享(第八次)------数据的存储

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C语言学习分享⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多C语言知识   🔝🔝 数据的存储 1. 前言🚩2…