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

cURL 入门:10 分钟学会用命令行发 HTTP 请求

curl初识

  • curl
    • 通过 URL 传输数据的命令行工具和库
    • 是一个非常强大的命令行工具,用于在网络上传输数据。它支持众多的协议,像 dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss等
      在这里插入图片描述

常用指令

  • curl 的用法指南
用法: curl [options...] <url>
-d, --data <data>           HTTP POST data 用于在 HTTP POST 请求里发送数据,数据格式通常为表单数据(key1=value1&key2=value2)或者 JSON 数据
-f, --fail                  Fail fast with no output on HTTP errors 若 HTTP 请求返回的状态码是 4xx 或 5xx,curl 会立即失败,且不输出响应内容
-h, --help <category>       Get help for commands 显示 curl 命令的通用帮助信息
-i, --include               Include response headers in output 在输出中包含响应的 HTTP 头信息
-o, --output <file>         Write to file instead of stdout 把响应内容写入指定的文件,而非输出到标准输出
-O, --remote-name           Write output to file named as remote file 把响应内容写入一个文件名和远程文件相同的文件
-s, --silent                Silent mode 静音模式,不显示进度条和错误信息。
-T, --upload-file <file>    Transfer local FILE to destination 将本地文件传输到指定的远程目标
-u, --user <user:password>  Server user and password 指定服务器的用户名和密码,用于身份验证
-A, --user-agent <name>     Send User-Agent <name> to server 在请求头中设置用户代理信息
-v, --verbose               Make the operation more talkative 详细模式,显示更多的操作信息,如请求头、响应头、连接信息等
-V, --version               Show version number and quit 显示 curl 的版本号并退出

常用功能

  • curl 常用功能,它还有很多其他的选项和用法,你可以通过 curl --help / curl --help all 或者 man curl 命令查看详细的帮助文档。

获取网页内容

若要获取某个网页的 HTML 内容,可使用以下命令:

curl https://www.example.com

此命令会向 https://www.example.com 发送一个 GET 请求,并且把响应内容输出到终端。
在这里插入图片描述

下载文件

若要下载文件,可使用 -O 选项:

curl -O https://example.com/file.zip

该命令会把 https://example.com/file.zip 文件下载到当前目录,并且文件名保持不变。
在这里插入图片描述

发送 POST 请求

若要发送一个 POST 请求,可使用 -X POST 选项,同时使用 -d 选项来指定请求体:

curl -X POST -d "key1=value1&key2=value2" https://example.com/api

此命令会向 https://example.com/api 发送一个包含表单数据的 POST 请求
在这里插入图片描述

携带请求头

若要在请求中携带自定义的请求头,可使用 -H 选项:

curl -H "Content-Type: application/json" -H "Authorization: Bearer your_token" https://example.com/api

这个命令会在请求中添加 Content-Type 和 Authorization 请求头。

显示响应头

若要显示响应的 HTTP 头信息,可使用 -i 选项:

curl -i https://www.example.com

这样,响应的 HTTP 头和内容都会显示在终端。
在这里插入图片描述

示例

curl可以用来复现某个请求的场景,可以通过network右键请求,以cURL格式复制,在联调阶段提供给后端复现异常case

cURL格式复制

  • 控制台网络右键,以cURL格式复制
    在这里插入图片描述
    curl 'https://bizapi.csdn.net/blog-console-api/v3/editor/getArticle?id=147578947&model_type=' \-H 'accept: */*' \-H 'accept-language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6' \-b $'uuid_tt_dd=10_20886590480-1715581486529-199232; UN=Sheng_zhenzhen; Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22Sheng_zhenzhen%22%2C%22scope%22%3A1%7D%7D; __gpi=UID=00000e1a492850fb:T=1715590181:RT=1715839707:S=ALNI_MY8mypwNtf_Kj4GFL4esXQyjSOqqw; chat-version=2.1.1; cf_clearance=ITQEWw5z1YDm8Ze.0oxq0dDpsWkei6LjewH6KXUGLNI-1716793341-1.0.1.1-qlOvY2p_zmqgE_r7zm1eAid8o1f8Mkn56.JnPangSDHNvBP7eOd3Hk1mBoBf7HL5_7Kl4Yw597wVVuri1jPI_g; pluginId=kfkdboecolemdjodhmhmcibjocfopejo; pluginVersion=3.0.6; pluginUUID=10_79336979949-1717050176275-846154; Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac=6525*1*10_20886590480-1715581486529-199232\u00215744*1*Sheng_zhenzhen; fid=20_82651201800-1723170159863-555732; _ga=GA1.2.1578275584.1715592580; _ga_7W1N0GEY1P=GS1.1.1730258945.16.1.1730259669.60.0.0; UserName=Sheng_zhenzhen; UserInfo=f99197ef9c784558bd56392ed10ea1b0; UserToken=f99197ef9c784558bd56392ed10ea1b0; UserNick=%E5%AD%A4%E5%BD%B1_ls; AU=6DB; BT=1731318494288; p_uid=U010000; csdn_newcert_Sheng_zhenzhen=1; historyList-new=%5B%5D; ssxmod_itna=eqRxnQi=oGqDq0KGQDXinxBKWSQQoDu7W=Gx0v4PGzDAxn40iDtrZ8liogYpB0mgmXi7YjdcN5EQfm0AWKGm3weK7ADAoDhx7QDox0=DnxAQDjhE4GGIxBYDQxAYDGDDPcDGqXORD7Otk0r5FmoIFI=5DbrK7DiKODYHmDAqGS2yC7o2CDDPmDl9sDWP7DQ5zm2PDExGOfbFwuxGarFffs4KDECbks/oDvhO7CxGd9pyzmpLtKC+eKihqS7a4EeRDQCGqhDxnOe+qqDxqmT2Yheb4OiG9Ho6otYD; tfstk=gDin20jl751jMalA9frBkA6nC5YTR9ZS4bI8wuFy75PsJ0eKU7VrGfUzypN-s7lEtuE8YbKorxHUTu3KegWz6-QFYuSU_PyunwJQ87rar-2Hd6zUzajaEbGuPpN8a7c-U2p9DnHIduZzqIKvDO-3WPi3a_EzAlo-YcVyDnHIL-vB51-xvqg8TWPz4yzz7GP_K8rzaWJg_82fz6lz4dvgEJ5P4MrPQhy43uPrauJiQ5wr63szi0osbClYILvtkxogKyVqKEsPqcjY-SkUsgRqjJjzgvPG4gPdhnZSUbRl2oujs04qN3j_vx0abJ0MUNPUo2lLCbxcYWoiLDPKYCILTDMZk0hwUgPo7qzYTVO6Vyuj9qziXBj_gVkieP06FwF-l8l7l0dfAWkrhmgYm3XuIqDajg7l7Z7sNgwwec75Pyy_ISHl-EHXIij76dvGleaUCJdvIdbSiyy_dspMIZr38RwpM; c_dl_prid=1740649897648_864214; c_dl_rid=1742281686650_772730; c_dl_fref=https://so.csdn.net/so/search; c_dl_fpage=/download/qq_38334677/86036480; c_dl_um=-; c_segment=0; HMACCOUNT=ED4D3BE6510A9B63; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1745380057; dc_sid=a08809d45b2f461665e7b45d90a82006; c_ab_test=1; c_first_ref=default; creative_btn_mp=3; is_advert=1; c_utm_source=cknow_so_nontop_query; fe_request_id=1745742732533_5850_4056531; _clck=13wupaw%7C2%7Cfvg%7C0%7C1594; __gads=ID=fe72fa3892ac6714:T=1715590181:RT=1745809122:S=ALNI_MZqCAlmtjYUiq6y2U8l7MnIUe9Jlg; __eoi=ID=b59f0837bf8979e7:T=1731227900:RT=1745809122:S=AA-AfjZJvIGf_IEkWgWEjLcXhNEO; FCNEC=%5B%5B%22AKsRol_hZnRk3OSTXRkf8v9YwrMBJ7vSLML0MCqwwXkl8fxQjmyxyDuWVhga8YSqEKbq_XXLmkViw2c1POZuF2vRu5sL5KzLMcEfJLj-hTldXI5USMJ5rm09P5N0T_dDk3yLRDQ_lR-DU2S0GAe78YJt3TN39FbYFA%3D%3D%22%5D%5D; dc_session_id=10_1745764966337.725197; c_first_page=https%3A//www.csdn.net/; c_dsid=11_1745810721238.604193; c-sidebar-collapse=0; c_page_id=default; creativeSetApiNew=%7B%22toolbarImg%22%3A%22https%3A//img-home.csdnimg.cn/images/20230921102607.png%22%2C%22publishSuccessImg%22%3A%22https%3A//img-home.csdnimg.cn/images/20240229024608.png%22%2C%22articleNum%22%3A195%2C%22type%22%3A2%2C%22oldUser%22%3Atrue%2C%22useSeven%22%3Afalse%2C%22oldFullVersion%22%3Atrue%2C%22userName%22%3A%22Sheng_zhenzhen%22%7D; log_Id_click=12; c_pref=https%3A//editor.csdn.net/; c_ref=https%3A//mpbeta.csdn.net/; log_Id_pv=16; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1745811569; dc_tos=svestt; log_Id_view=558' \-H 'origin: https://editor.csdn.net' \-H 'priority: u=1, i' \-H 'referer: https://editor.csdn.net/' \-H 'sec-ch-ua: "Google Chrome";v="135", "Not-A.Brand";v="8", "Chromium";v="135"' \-H 'sec-ch-ua-mobile: ?0' \-H 'sec-ch-ua-platform: "macOS"' \-H 'sec-fetch-dest: empty' \-H 'sec-fetch-mode: cors' \-H 'sec-fetch-site: same-site' \-H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36' \-H 'x-ca-key: 203803574' \-H 'x-ca-nonce: e2186239-0495-49a9-8c05-02dd677772cf' \-H 'x-ca-signature: fIpNPDiIfxK5lYtg8bA/kjasew4xr8by8Ve9GxdqjHc=' \-H 'x-ca-signature-headers: x-ca-key,x-ca-nonce'
    

命令解释

  1. 请求 URL
    • curl ‘https://bizapi.csdn.net/blog-console-api/v3/editor/getArticle?id=147578947&model_type=’
      • 此 URL 指向 CSDN 的文章获取 API,id=147578947 表明要获取的文章 ID 是 147578947。
  2. 请求头参数
    • -H ‘accept: /’:表示客户端能接受任意类型的响应内容。
      -H ‘accept-language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6’:指明客户端期望的语言顺序,优先是中文(中国大陆、中国台湾),其次是英文。
      -b:用于传递 Cookie 信息,其中包含了用户的登录状态、用户信息、会话 ID 等。
      -H ‘origin: https://editor.csdn.net’:表示请求的来源页面是 https://editor.csdn.net。
      -H ‘referer: https://editor.csdn.net/’:表明请求是从 https://editor.csdn.net/ 页面发起的。
      -H ‘user-agent: …’:模拟浏览器的用户代理信息,这里模拟的是 Chrome 浏览器在 macOS 系统上的请求。
      -H ‘x-ca-key: …’、-H ‘x-ca-nonce: …’、-H ‘x-ca-signature: …’、-H ‘x-ca-signature-headers: …’:这些是自定义的请求头。

执行效果
请添加图片描述

相关文章:

  • 【jceks】使用keytool和hadoop credential生成和解析jceks文件(无密码storepass)
  • Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(一)
  • 马井堂-大语言模型对教学的应用分析
  • 网络基础概念:从菜鸟到入门
  • 面试算法高频08-动态规划-03
  • 新环境注册为Jupyter 内核
  • Uniapp:vite.config.js全局配置
  • 可解释人工智能(XAI):让机器决策透明化
  • AI - LangChain - 介绍(1)
  • 成员方法的详细说明(结合Oracle官方文档)
  • 9.5/Q1,GBD数据库最新高分文章解读
  • Cursor
  • JVM 内存分配策略
  • spring cloud 服务注册与发现(Service registration and discovery)
  • 常见算法的总结与实现思路
  • Flutter 学习之旅 之 flutter 作为 module ,在 Android 的界面中嵌入Flutter界面功能的简单整理
  • 研究:大模型输出一致性:确定性与随机性的场景化平衡
  • 【Spark入门】Spark架构解析:组件与运行机制深度剖析
  • IP SSL证书常见问题:快速实现HTTPS加密
  • 【前端】【面试】如何实现图片渐进式加载?有几种方法
  • 人到中年为何腰围变粗?科学家发现腹部脂肪增加的细胞元凶
  • CSR周刊:李宁打造世界地球日特别活动,珀莱雅发布2024年度可持续发展报告
  • 马上评丨发钱奖励结婚,支持婚育就该系统性发力
  • 靳燕出任中央戏剧学院党委副书记,原任中戏院长助理
  • 新城市志|中国消费第一城,迎来“补贴力度最大”购物节
  • 俄方证实俄总统普京正在会见美特使威特科夫