当前位置: 首页 > news >正文

Linux 网络请求工具:curl

文章目录

  • Linux 网络请求:curl
    • 1. 安装
    • 2. 常规用法
    • 3. 传输速率
    • 4. FTP
    • 5. 代理

Linux 网络请求:curl

1. 安装

若系统没有 curl 命令,可以直接通过 yum 或者 dnf 安装:

yum -y install curl
# 查看版本,确认安装结果
curl --version

2. 常规用法

直接 curl your-url 可以发起默认的请求。

可以通过指定参数为请求设置配置,例如指定请求方法,以及添加请求头(Header)发起请求:

curl -X Method -H Header your-url

其中,Method 可以是:

  • GET:请求内容,不会产生修改,多次发起没有副作用
  • HEAD:类似 GET,但是只获取返回头
  • POST:提交,或者修改,多次发起会有作用
  • PUT:通常用于上传资源
  • DELETE:用于删除服务器上面的资源
  • OPTIONS:查看服务器性能

-H(或 --header)可以指定请求头,多个请求头选项的设置可以使用多个 -H,例如:

curl -X POST -H "Content-Type : application/json" -H "User : your-user" http://your-url

-o 选项可以将请求结果写入到文件中,例如将某个地址响应的 html 文本写入到文件中(非浏览器解析得到 DOM 树之后的展示效果,比如缺少了CSS解析,所以直接打开可能会与实际浏览器访问该地址的效果有差异):

# -o output 输出到指定目录下面,文件名称与远程服务器上相同
curl www.baidu.com -o /tmp
# 重命名
curl www.baidu.com -o /tmp/baidu-homepage.html

下载过程中经常会遇到中断的情况,需要用户重新下载整个文件,可以考虑添加 -C 选项实现恢复中断的下载:

curl -C -o http://url-of-some-large-image

3. 传输速率

限制最大传输速率,例如下载某个镜像文件:

curl --limit-rate 1m -o https://your-image-file-url

4. FTP

可以使用 curl 命令访问 FTP 服务器,实现文件上传和下载功能。

-u 参数用于为任何需要认证访问的服务地址指定登录的用户名称和密码,可用于登录 FTP 服务器:

curl -u ftp-user:ftp-pwd ftp://your-ftp-server

其中,ftp-user 为用户名,ftp-pwd 为密码。

结合前文提到的 -o 选项,可以进行文件下载:

curl -u ftp-user:ftp-pwd -o ftp://your-ftp-server

使用 -T 进行文件上传:

curl -T local-file.tar.gz -u ftp-user:ftp-pwd ftp://your-ftp-server

-T 后的参数为本地文件的路径

5. 代理

直接使用开放的代理:

curl -x proxy-url:proxy-port http://url-want-to-access-through-proxy

需要认证的代理:

curl -u username:password -x proxy-url:proxy-port http://url-want-to-access-through-proxy
http://www.lryc.cn/news/379553.html

相关文章:

  • leetcode 二分查找·系统掌握 寻找旋转排序数组中的最小值II
  • Flink 容错
  • OpenAI策略:指令层级系统让大模型免于恶意攻击
  • 芝麻清单助力提升学习工作效率 专注时间完成有效的待办事项
  • Docker 容器操作命令
  • 华为配置创建vlan及划接口,trunk干道,DHCP池塘配置
  • vue3 computed与watch,watchEffect比较
  • 论文:R语言数据分析之机器学习论文
  • 【C++】STL中优先级队列的使用与模拟实现
  • C#开发-集合使用和技巧(二)Lambda 表达式介绍和应用
  • Qt底层原理:深入解析QWidget的绘制技术细节(2)
  • 【Gradio】表格数据科学与图表-连接到数据库
  • 艾多美用“艾”为生命加油,献血活动回顾
  • 人工智能在气象预报领域的崛起:GraphCast引领新纪元
  • http和https的区别在哪
  • windows10远程桌面端口,Windows 10远程桌面端口修改的两个方法
  • 力扣1504.统计全1子矩形
  • vue3高德地图组件化,解决复用地图组件时渲染失败问题
  • Langchain 如何工作
  • 【数据结构】顺序表实操——通讯录项目
  • C++继承与多态—多重继承的那些坑该怎么填
  • 论文阅读:基于谱分析的全新早停策略
  • 1.接口测试-postman学习
  • 2024年码蹄杯本科院校赛道初赛(省赛)
  • PHP蜜语翻译器在线文字转码解码源码
  • 安卓浏览器区分启动、打开、分享
  • C/C++ 数组负数下标
  • 钓鱼网站开发原理(社会工程学)
  • 如何优雅地使用 console.log 打印数组或对象
  • 模式分解的概念(下)-无损连接分解的与保持函数依赖分解的定义和判断、损失分解