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

article/2025/1/9 3:23:08

Curl 官方下载地址 可下载不同平台不同版本的安装包,本次使用的是Windows解压版本curl-8.0.1_9-win32-mingw.zip

curl下载使用及cmd实例

    • 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 offcdcd ./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 实际演示图

目录结构是这样的:

在这里插入图片描述

# 代码里的 cd ./curl/bin 就是为了使用 curl 命令
cd ./curl/bin

example1的执行界面:

在这里插入图片描述
example2的执行界面:

在这里插入图片描述


http://chatgpt.dhexx.cn/article/7y8sy0Pn.shtml

相关文章

完整的python项目实例-python完整项目

广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。 一个完整的python项目需要具备什么? 1. 需求功能的实现: 实现思路+现有框架+基础编程 2. 项目日志: logging模块(调试性的日志和记录性的日志…

微信小程序项目实例——投骰子

微信小程序项目实例——投骰子 文章目录 微信小程序项目实例——投骰子一、项目展示二、核心代码文末 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 投骰子是一款工具类小程序 用户可以点击按钮投出自身的骰子点数 二、核心代码 <!--dice.wxml--> <v…

连接数据库的项目实例

学生成绩管理系统 关键词&#xff1a;java&#xff0c;SQL Server 2012 后端 打开SQL Server 2012&#xff1a; 点击加号&#xff1a; 选中数据库&#xff0c;右键&#xff0c;新建数据库&#xff1a; 点击确定&#xff0c;等待片刻选中数据库&#xff0c;右键&#xff0c;刷…

SSM项目实例——简易版图书管理系统

文章目录 概述准备实现1.搭建数据库2.实现pojo层3.实现dao层4.实现service层5.配置Spring整合dao层6.配置Spring整合service层7.配置Spring整合Spring MVC8.配置Spring整合文件9.实现controller层10.实现view层11.运行前检查 运行后记 概述 通过对数据库中一张表的CRUD&#x…

vue-element-admin完整项目实例

项目运行地址&#xff1a;https://panjiachen.github.io/vue-element-admin/#/login 项目地址&#xff1a;https://github.com/PanJiaChen/vue-element-admin 项目地址&#xff1a;&#xff08;国际化&#xff09;https://github.com/PanJiaChen/vue-element-admin/tree/i18n 项…

购物车——js小项目实例

购物车——js小项目实例 首先构思好整体样式 添加点击事件&#x1f341;事件委托&#x1f341;接下来就是各种函数的书写 最后附上完整js代码 短短几周&#xff0c;js阶段的学习已然结束&#xff0c;结课作业就是实现一个购物车功能 功能&#xff1a; 1、可以添加商品 2、全选…

SpringBoot+Vue项目实例开发及部署

目录 一、SpringBoot快速上手 1、SpringBoot介绍 2、SpringBoot特点 3、快速创建SpringBoot应用 4、SpringBoot开发热部署 二、Web开发基础 1、Web入门 2、控制器 3、路由映射 4、参数传递 三、Web开发进阶 1、静态资源访问 2、文件上传原理 3、拦截器 四、构建…

微信小程序项目实例——手势解锁

微信小程序项目实例——手势解锁 文章目录 微信小程序项目实例——手势解锁一、项目展示二、设置手势、手势解锁三、手势重置文末&#xff1a;项目代码 项目代码见文字底部 一、项目展示 这是一款简单实用的手势解锁工具 手势解锁是当下常用的解锁方式 本实例以工具的形式 可以…

微信小程序项目实例——家居团购

微信小程序项目实例——家居团购 文章目录 微信小程序项目实例——家居团购一、项目展示二、首页三、购物车四、个人中心 项目代码见文字底部 一、项目展示 二、首页 首页由建材市场、团购活动、公益验房和线上拼团组成 从上到下分为广告区、导航区、内容区 核心代码如下&…

微信小程序项目实例——飞机大战

微信小程序项目实例——飞机大战 文章目录 微信小程序项目实例——飞机大战一、项目展示二、设计介绍三、总结 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 二、设计介绍 游戏和传统的飞机大战模式一样 这里设置了三种敌机和自家飞机的受损图 同时游戏设计了道…

微信小程序项目实例——双人五子棋

微信小程序项目实例——双人五子棋 文章目录 微信小程序项目实例——双人五子棋一、项目展示二、项目核心代码三、效果展示文末 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 微信小程序项目实例——双人五子棋 双人五子棋是一款游戏小程序 两位选手可以在15x1…

Android开发之项目实例(登录,注册)

Android开发 实现登录注册界面 前言&#xff1a; 今天项目刚刚做完&#xff0c;我就迫不急待的想分享一下&#xff0c;自己通过实例项目踩过的坑以及遇到遇到的困难发表一下&#xff0c;以便刚刚接触的伙伴跳跳坑&#xff0c;也便于自己在今后的开发中巩固&#xff0c;此篇文…

Django新手项目实例

1. 程序安装 &#xff08;1&#xff09;安装Django&#xff1a; pip3 install django&#xff08;2&#xff09;配置系统环境 成功安装Django后&#xff0c;在python目录script路径可找到django-admin.exe文件&#xff0c;将它加入操作系统环境变量中。这样以后调用会比较方便…

微信小程序项目实例——印记

微信小程序项目实例——印记 文章目录 微信小程序项目实例——印记一、项目展示二、日记列表三、日记发布文末 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 印记是一款简洁便利的日记本&#xff0c;用户可以在其中发布自己的日记本&#xff0c;同时也可以查看…

微信小程序项目实例——备忘录

微信小程序项目实例——备忘录 文章目录 微信小程序项目实例——备忘录一、项目展示二、项目介绍三、核心代码 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 二、项目介绍 项目是一个备忘录&#xff0c;拥有记录文字、计时和提醒的基本功能 项目只有一个页面&…

微信小程序项目实例——幸运大转盘

微信小程序项目实例——幸运大转盘 文章目录 微信小程序项目实例——幸运大转盘一、项目展示二、抽奖页三、领奖页文末&#xff1a;项目代码 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 幸运大转盘是一个简单的抽奖小程序 参与用户点击抽奖便可抽取轮盘的奖品…

微信小程序项目实例——狼人杀

微信小程序项目实例——狼人杀 文章目录 微信小程序项目实例——狼人杀一、项目展示二、首页三、游戏页四、特殊角色文末 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 狼人杀是一款多人参与的&#xff0c;通过语言描述推动、较量口才和分析判断能力的策略类桌…

project实操——项目实例

1. 新建项目 2. 设置项目日历 可以设置每周工作几天&#xff0c;每天工作几小时 点击 项目 -> 更改工作时间 在弹出窗口上&#xff0c;选择下方的“”工作周“选项卡&#xff0c;点击右侧的【详细信息】按钮 系统打开的详细信息窗口上&#xff0c; 选中左侧列表中的“周六…

Android Studio同步远程Git代码到本地

前一篇文件说如何将本地代码同步到远程Git服务器&#xff08;将代码同步到远程Git服务器&#xff09;&#xff0c;这篇说说如何在Android Studio中将远程代码同步到本地。 环境说明&#xff1a; 1、本地需要安装有git环境 2、Android Studio 3、存放项目的远程服务器地址&a…

git 同步远程和本地的同名分支

首先正常创建一个本地仓库&#xff0c;添加内容&#xff0c;跟远程关联 git init git add . git commit -m "" git remote add origin 远程仓库地址 如果在本地创建了一个新的分支 git checkout -b branch_one 然后将该分支直接推动到远程进行同步 git push -u …