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

Curl用法解析

Curl 用法解析

简介

Curl 是一个强大的命令行工具,主要用于从服务器发送 HTTP 请求并获取数据。它广泛应用于调试 RESTful API、文件上传下载、模拟用户交互等多种场景。下面是一些基本用法及常见参数的分析:

基础用法

curl [options] [URL]

其中最基本的形式就是指定一个 URL,curl 会向该 URL 发送一个 HTTP GET 请求并显示响应内容。

发送 GET 请求

curl https://example.com

这个命令会向 https://example.com 发送 GET 请求,并打印服务器返回的响应内容。

选项详解

  • -X, --request <METHOD>:指定 HTTP 方法,如 POSTPUTDELETE 等。⭐️

    curl -X POST https://api.example.com/data
    
  • -d, --data <DATA>:发送 POST 数据。例如,发送 JSON 数据:⭐️

    curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' https://api.example.com/data
    
  • -H, --header <HEADER>:添加 HTTP 头信息。例如:⭐️

    curl -H "Authorization: Bearer token_value" https://example.com
    
  • -o, --output <FILE>:将响应内容保存到文件中,而不是输出到屏幕。

    curl -o output.html https://example.com
    
  • -I, --head:只获取 HTTP 头部信息,不下载响应主体内容。⭐️

    curl -I https://example.com
    
  • -v, --verbose:详细模式,展示请求和响应的所有详细信息,包括头信息、SSL 证书交换过程等。

    curl -v https://example.com
    
  • -L, --location:自动跟随服务器返回的 Location 头自动重定向。⭐️

    curl -L https://example.com/original-url
    

    如果 https://example.com/original-url 返回一个 3XX 重定向响应,curl 会自动跟随重定向的 URL,并显示最终的目标页面内容。

  • -w, --write-out <FORMAT>:自定义输出格式,可以用于统计请求的耗时等信息。

    curl -w "%{http_code} %{time_total}\n" -o /dev/null https://example.com
    

    这个命令会发出一个 GET 请求到 https://example.com,但不显示响应内容(通过 -o /dev/null 实现)。-w 参数后面的 %{http_code} 表示输出 HTTP 响应码,%{time_total} 表示输出请求总耗时(包括 DNS 解析、TCP 连接、TLS 握手以及实际传输时间)。

  • -u, --user <USER[:PASSWORD]>:提供 HTTP 基本认证信息。

    curl -u myusername:mypassword https://example.com/protected-resource
    

    这个命令会在请求 https://example.com/protected-resource 时附带上 HTTP Basic Authentication 头,其中用户名为 myusername,密码为 mypassword

  • -k, --insecure:跳过服务器证书验证(仅在测试环境中谨慎使用)。

    curl -k https://self-signed.example.com
    

    在访问自签名证书或者证书不受信任的服务器时,可以使用 -k 参数跳过证书验证。但在生产环境中强烈不建议这样做,因为它会导致安全风险,容易受到中间人攻击。仅在测试或调试环境中临时使用。

发送 POST 表单

# POST 提交 表单数据
curl -F "username=hello"                \-F "password=123456"               \-F "head_image=@filepath.jpg"      \http://localhost/register

文件上传

curl -X PUT -T file.txt https://server/upload/path

这个命令用于上传 file.txt 文件到指定的服务器路径。

线上排查(检查网络)

容器内运行指令,需要 bash 指令进入命令行窗口

ping(判断网络)

  1. 功能:ping 命令通过发送 ICMP 回显请求报文,并监听对方返回的 ICMP 回显应答报文,来测试两个网络节点间的连通性。它可以用来判断网络层的可达性和估算网络延迟。
  2. 用途:
    • 验证远程主机是否在线和可访问
    • 测试网络连接的速度和稳定性,通过计算并报告往返时间(Round-Trip Time, RTT)。
    • 解析域名以获取其对应的 IP 地址。

telnet(判断端口)

  1. 功能:telnet 是基于 TCP 协议的远程登录和通信工具,允许用户建立与远程主机上的指定端口的连接。
  2. 格式:例如,telnet 127.0.0.1 1521 – 测试主机(127.0.0.1)的 1521 端口是否打开。
  3. 用途:
    • 远程连接到提供 telnet 服务的主机,进行命令行交互式的管理操作。
    • 测试网络服务端口是否开放:通过尝试连接到远程主机的特定端口(如 80 端口用于 HTTP 服务,22 端口用于 SSH 服务),可以验证该端口是否接受连接请求,从而确认服务器的服务状态。
    • 验证防火墙规则设置是否正确:如果 telnet 到某个端口失败,则可能是由于防火墙阻止了连接,或者是目标主机没有运行相应的服务。

总结来说,在线上排查时,ping 主要用来快速验证网络连通性和响应速度,而 telnet 则更侧重于检查特定网络服务的可用性,尤其是基于 TCP 协议的服务端口。

用法示例

# 写法一
curl -X POST --location "http://localhost:9094/user/page" \
-H "Content-Type: application/json" \
-H "x-user-id: 1" \
-d '{"current": 1,"date": 20240320,"size": 20}'# 写法二(可省略 -X POST,因为 -d 已经暗示了这是一个 POST 请求)
curl -X POST -H "Content-Type: application/json" \-d '{"current": 1, "date": 20240320, "size": 10}' \http://localhost:9094/user/page

curl 有一个特性:

  • -d 选项被使用时,如果未明确指定 -X--request,它会默认使用 POST 方法。这是因为 -d 的存在通常意味着你想向服务器发送数据,这与 POST 请求的语义相匹配。

学习参考

  • telnet ip 端口 命令_检测网络是否正常(ping,Telnet,tracert以及tnsping)-CSDN博客
  • curl命令用法-CSDN博客
  • curl - Tutorial

相关文章:

  • 基于华为云 ModelArts 的在线服务应用开发(Requests 模块)
  • drupal7可以从测试环境一键部署到生产环境吗
  • Springboot+Vue实现邮箱验证功能(邮箱登录+忘记密码)
  • Docker 部署 PostgreSQL 数据库
  • 基于龙芯 2K1000处理器和复旦微 FPGA K7 的全国产RapidIO 解决方案研究
  • Maven插件学习(三)——插件配置依赖和执行目标
  • 代码随想录算法训练营Day34
  • 【Java面试笔记:基础】4.强引用、软引用、弱引用、幻象引用有什么区别?
  • LangChain 核心模块学习:Chains
  • 配置spark
  • 嵌入式:ARM公司发展史与核心技术演进
  • 基于函数下降趋势的FISTA算法
  • el-form里面的input输入框按回车自动刷新页面的问题
  • Hyper-V 管理工具
  • 12.5/Q1,GBD高分文章解读
  • 深度强化学习 pdf 董豪| 马尔科夫性质,马尔科夫过程,马尔科夫奖励过程,马尔科夫决策过程
  • 香港免费云服务器申请教程,配置4核8G
  • 制作一款打飞机游戏17:敌人
  • G1 人形机器人软件系统架构与 Python SDK
  • SystemV-消息队列与责任链模式
  • 五一期间全国高速日均流量6200万辆,同比增长8.1%
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 启程回家!神十九轨道舱与返回舱成功分离
  • 节前A股持续震荡,“五一”假期持股还是持币过节胜率更高?
  • 南京航空航天大学启动扁平化改革:管理岗规模控制在20%,不再统一设科级机构
  • 游客曝九寨沟打网约车被出租车围堵,景区回应:当地无合规网约车