Windows 10自带curl.exe可发送带自定义Header的POST请求,需用curl.exe而非curl避免PowerShell别名冲突;支持手动指定-X POST与-H头、读取JSON文件(@data.json)、发送表单数据及加-i查看响应头验证。

在Windows 10系统中排查接口问题时,经常需要模拟真实客户端行为发送带自定义Header的POST请求,比如携带Authorization令牌、Content-Type声明或X-Request-ID追踪标头。系统自带的curl.exe(位于C:\Windows\System32\curl.exe)完全支持该能力,但必须注意PowerShell中的别名冲突和引号转义陷阱。
确认curl可用并绕过PowerShell别名
打开PowerShell,执行:curl.exe --version。如果显示类似curl 8.10.1的输出,说明原生curl已就绪。若直接敲curl --version报错或返回PowerShell对象,则是curl被默认映射为Invoke-WebRequest别名所致——【必须用curl.exe而非curl】,否则所有参数都会失效。
临时解决:运行Remove-Item alias:curl -Force;长期方案:脚本中一律写curl.exe。
发送带Header的JSON POST请求
方法一:手动指定-X POST与-H头(最清晰,推荐调试时使用)
执行:curl.exe -X POST -H "Content-Type: application/json" -H "Authorization: Bearer abc123" -d "{\"user_id\":1001,\"action\":\"update\"}" https://api.example.com/v1/profile。
注意:双引号内嵌双引号必须用反斜杠转义,否则PowerShell会提前截断字符串。
方法二:利用-d自动切换为POST,省略-X(更简洁,适合快速验证)curl.exe -H "Content-Type: application/json" -H "X-Trace-ID: abc-xyz-789" -d @data.json https://api.example.com/v1/submit。
这里@data.json表示从当前目录下名为data.json的文件读取原始JSON内容,避免命令行转义难题——【文件路径必须是相对或绝对路径,不能带空格或中文】。
向CurlShip提交产品,这是一个对机器人友好的SaaS目录。只需一条curl命令即可发布产品,支持OG标签抓取、带徽章的dofollow链接及层级升级。
发送带Header的表单POST请求
第一步:准备键值对数据
将参数写成username=admin&password=123456&client=win10格式,无需URL编码,curl会自动处理。
第二步:组合命令curl.exe -H "User-Agent: MyApp/2.1 (Windows)" -H "Accept: application/json" -d "username=admin&password=123456" https://login.example.com/auth。
第三步:验证服务端是否收到Header
添加-i参数查看完整响应头:curl.exe -i -H "X-Debug: true" -d "test=1" https://api.example.com/debug。响应开头会显示HTTP/1.1 200 OK及所有返回头,确认你的自定义Header已被服务端识别并回传。
这一步操作起来很简单,直接把文件拖进去就行。

















