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

CURL一文通

文章目录

  • 1.什么是curl
  • 2.curl可以发送什么请求
  • 3.常见curl发http相关请求怎么写
  • 4.curl带上的参数分别有什么,可以怎么用
  • 5.进阶用法
  • 6.常见错误以及学习指导建议

1.什么是curl

是利用URL语法在命令行下工作的开源文件传输工具。尤其被广泛应用的在linux系统下。

2.curl可以发送什么请求

由定义可知道,curl主要应用于网络传输,它支持常用的多种请求,如http,https,ftp等

3.常见curl发http相关请求怎么写

在日常运维中curl常用于判断网络服务接口是否可正常使用,故常用于发送http/https请求
可以发送以下的方式
1)GET请求
curl http://example.com
说明:当调用http/https请求时,没有明确指明使用哪个方式的话,默认使用GET请求

2)POST请求
curl -X POST -d “username=test&password=123” http://example.com/login
说明:
-X 指定请求方法
-d 发送表单数据(自动添加Content-Type: application/x-www-form-urlencoded)

3)JSON形式的POST请求
curl -X POST -H “Content-Type: application/json” -d ‘{“key”:“value”}’ http://example.com/api
说明:-H 自定义请求头,以上是发送json形式指令,当同时需要写多个请求头时,可以这样写,举一个常用的例子,比如如何在走鉴权的情况下发json形式的网络请求。示例如下:curl -H “Authorization: Bearer YOUR_TOKEN” -H “Content-Type: application/json” https://api.example.com

4.curl带上的参数分别有什么,可以怎么用

以上的例子可以看到最基础的请求参数有-X,-H。以下将根据使用的作用进行分类说明,值得注意的是参数有大小写区分。
1)请求参数类
-H 添加请求头 -H “Authorization: Bearer token”
-F 上传文件/表单 -F “file=@/path/file.jpg”(支持多文件上传)
-A 设置User-Agent -A “Mozilla/5.0” 伪装浏览器
-e 设置Referer来源 -e “http://referer-site.com”
-T 上传文件, 后面跟着的是本地文件的路径

2)响应处理类
-o 保存响应到文件 -o output.html 自定义文件名
-O 使用远程文件名保存 自动识别URL中的文件名
-i 显示响应头+内容 调试时查看完整响应信息
-v 显示通信全过程 含请求头、SSL握手等细节

3)认证与代理
-u HTTP基础认证 -u user:password
-x 设置代理 -x http://proxy:8080
-k 忽略SSL证书校验 测试环境跳过HTTPS验证

5.进阶用法

5.1 文件传输
1)FTP请求
curl -T localfile.txt ftp://ftp.example.com/

​2)​断点续传
curl -C - -O http://example.com/largefile.zip

5.2 Cookies管理
curl -b cookies.txt -c new_cookies.txt http://example.com
说明:-b 发送存储的Cookies,-c 保存新Cookies到文件

5.3调试技巧
curl --trace-ascii debug.log http://example.com
生成详细通信日志,便于分析请求过程

6.常见错误以及学习指导建议

6.1 ​SSL证书错误
添加 -k 参数或指定证书路径:
curl --cacert /path/ca.pem https://example.com

6.2 超时设置
curl --connect-timeout 10 --max-time 30 http://example.com
说明:–connect-timeout 连接超时
–max-time 最大传输时间

​6.3 中文编码问题
配合 iconv 转换编码:
curl http://example.com | iconv -f GBK -t UTF-8

6.4 学习建议
1)使用 curl --help 查看所有参数说明
2)参考官方文档:https://curl.se/docs/manpage.html

相关文章:

  • 考研系列-408真题计算机网络篇(10-17)
  • 《基于超高频RFID的图书馆管理系统的设计与实现》开题报告
  • HarmonyOS NEXT开发实战——HUAWEI DevEco Studio 开发指南
  • c++图论(二)之图的存储图解
  • linux (centos) 的 nodejs 安装全局包后使用命令无效
  • HCIP数通是啥?值钱吗?
  • 计算机操作系统进程(4)
  • 向量数据库原理及选型
  • 98.HarmonyOS NEXT跑马灯组件教程:MarqueeSection组件实现原理
  • Java基础编程练习第32题-定义接口(Biology、Animal)、类(Person)、子类(Pupil)(PTA选题)
  • Flask-WTForms表单验证中常见的正则表达式
  • 同一子网通信
  • 操作系统知识点31
  • 【漫话机器学习系列】142.Sigmoid 激活函数(Sigmoid Activation Function)
  • Kubernetes 中metrics-server的采集周期,采集链路是什么样的?
  • 【Hestia Project 数据集】美国化石燃料 CO₂ 排放数据
  • 《论语别裁》第01章 学而(27) 无所适从的礼俗
  • uboot中的.config文件
  • superset部署记录
  • min_element用法
  • 五一首日出沪高峰,G1503高东收费站上午车速约30公里/小时
  • 万达电影去年净利润亏损约9.4亿元,计划未来三年内新增25块IMAX银幕
  • 普京与卢卡申科举行会晤,将扩大在飞机制造等领域合作
  • 辽宁省全力开展辽阳一饭店火灾事故救援处置工作
  • 在岸、离岸人民币对美元汇率双双升破7.26关口
  • 韩国下届大选执政党初选4进2结果揭晓,金文洙、韩东勋胜出