windows 10 1803+已内置curl,需用curl --version验证;支持基础get、带参get(url加引号)、表单post(-d)、json post(-h指定头并转义引号)等http请求操作。

一、确认系统已内置curl并启动命令行环境
Windows 10 自 1803 版本起已预装 curl 工具,无需额外安装。若执行命令时提示“不是内部或外部命令”,需先验证环境是否就绪。该步骤旨在确保命令行能识别并调用 curl 可执行文件。
1、按下 Win + R 组合键,输入 cmd,回车打开命令提示符窗口。
2、在黑色窗口中输入 curl --version,按回车。
3、若显示类似 curl 8.7.1 (x86_64-pc-win32) libcurl/8.7.1 OpenSSL/3.1.5 (Schannel) zlib/1.3.1 nghttp2/1.61.0 的版本信息,则说明 curl 已可用;若提示“无法识别”,请检查系统版本或考虑升级至 Windows 10 1903 及以上。
二、发送基础 GET 请求获取网页内容
GET 是最常用的 HTTP 方法,用于从服务器读取资源。curl 默认即使用 GET,无需显式指定,适合快速测试接口连通性或抓取页面原始 HTML。
1、在命令行中输入 curl https://www.baidu.com,回车执行。
2、终端将直接输出百度首页的完整 HTML 源码(无样式渲染)。
3、如需同时查看响应头与响应体,改用 curl -i https://www.baidu.com。
4、如仅需响应头(常用于状态码检查),使用 curl -I https://www.baidu.com。
三、发送带查询参数的 GET 请求
当 URL 需携带键值对参数(如 ?userName=4&token=abc)时,应将完整 URL(含参数)作为 curl 唯一参数传入,避免空格或特殊字符导致解析失败。
1、访问带参数的测试接口:输入 curl "http://10.120.22.123:9527/payment/lb?userName=4",注意使用英文双引号包裹整个 URL。
2、若参数含中文或特殊符号(如 &、=、空格),必须加引号,否则 CMD 将其截断或误解析为命令分隔符。
3、如需将响应保存为本地文件,追加 -o response.html,例如:curl "http://10.120.22.123:9527/payment/lb?userName=4" -o result.txt。
四、发送表单格式的 POST 请求
POST 请求用于向服务器提交数据,表单格式(application/x-www-form-urlencoded)是最常见类型,数据以 key=value&key2=value2 形式组织,由 -d 参数传递。
1、构造请求命令:输入 curl -X POST -d "userName=4&amount=100" http://10.120.22.123:9527/payment/lb。
2、-X POST 显式声明请求方法,-d 后紧跟未编码的表单字符串。
3、若数据含空格或 & 符号,必须用英文双引号包围整个 -d 值,例如:curl -X POST -d "name=John Doe&city=New York" http://example.com/api。
4、如需查看完整通信过程(含请求头、连接细节),添加 -v 参数:curl -v -X POST -d "userName=4" http://10.120.22.123:9527/payment/lb。
五、发送 JSON 格式的 POST 请求
现代 API 普遍要求 Content-Type 为 application/json,此时需通过 -H 指定请求头,并确保 -d 中的 JSON 字符串格式合法且引号转义正确。
1、设置请求头并发送 JSON 数据:输入 curl -X POST -H "Content-Type: application/json" -d "{\"userName\":\"4\",\"type\":\"cash\"}" http://10.120.22.123:9527/payment/lb。
2、Windows CMD 中,JSON 内部双引号必须用反斜杠转义(\"),外层双引号不可省略。
3、为提升可读性与避免转义错误,可将 JSON 写入临时文件(如 data.json),再用 -d @data.json 引用:curl -X POST -H "Content-Type: application/json" -d @data.json http://10.120.22.123:9527/payment/lb。
4、若服务器返回非 2xx 状态码时希望静默失败,添加 -f 参数,例如:curl -f -X POST -H "Content-Type: application/json" -d "{\"userName\":\"4\"}" http://10.120.22.123:9527/payment/lb。











