PowerShell执行curl POST请求提示InFile参数缺失错误如何修正
问题原因
- 执行环境为PowerShell,PowerShell默认将
curl设置为Invoke-WebRequest命令的别名,而非跨平台原生curl工具。你使用的-i参数在Invoke-WebRequest中是-InFile参数的短别名,该参数需要传入本地文件路径作为值,你未提供对应参数值因此触发报错。 - 本次是POST提交JSON数据的请求,你的原始命令未携带要提交的JSON请求体,即使调用原生curl也无法完成请求。
修正方案
方案1:使用PowerShell原生命令发送请求
将你要提交的JSON数据替换到示例中的$body变量内即可:
# 构造请求头 $headers = @{ "Content-Type" = "application/json" } # 构造请求体,替换为你实际要提交的JSON数据 $body = '{"course_name":"高等数学","course_id":101,"credit":4}' # 发送请求 Invoke-WebRequest -Uri "http://127.0.0.1:5000/courses" -Method Post -Headers $headers -Body $body
方案2:在PowerShell中调用原生curl
如果你的系统已经安装了原生curl工具,可直接调用curl.exe绕过PowerShell别名规则,示例如下:
curl.exe -i -H "Content-Type: application/json" -X POST -d '{"course_name":"高等数学","course_id":101,"credit":4}' http://127.0.0.1:5000/courses
请将示例中的JSON内容替换为你实际要更新的JSON数据。
内容的提问来源于stack exchange,提问作者Annu
相关产品推荐
相关产品推荐

