在Visual Studio Code中使用curl插入JSON数据失败求助
问题解决步骤
1. 修复PowerShell中curl命令的引号解析问题
PowerShell里的curl是Invoke-WebRequest的别名,和原生curl行为不同,且PowerShell对引号的解析规则特殊,导致你的JSON字符串被错误拆解。解决方法:
- 直接调用原生
curl.exe避免别名混淆 - 用单引号包裹整个JSON内容(PowerShell中单引号内的内容不会被解析),或对JSON中的双引号进行转义
修正后的命令示例:
curl.exe -v http://localhost:9090/ -d '{"id": 1, "name": "tea","description": "Nice Tea", "price": 9.99, "sku": "TEA001"}' | jq
转义双引号的写法:
curl.exe -v http://localhost:9090/ -d "{\"id\": 1, \"name\": \"tea\",\"description\": \"Nice Tea\", \"price\": 9.99, \"sku\": \"TEA001\"}" | jq
2. 补充JSON中缺失的必填字段
你的Go Product结构体里,Price和SKU字段没有json:",omitempty"标签,意味着这两个字段是必填项,请求JSON中必须包含它们,否则后端会因JSON解析失败返回400错误。你需要在请求JSON中添加这两个字段,值根据实际业务调整即可。
额外验证要点
- 若后端接口仅接收POST请求,需在命令中添加
-X POST参数 - 若后端要求指定请求头,需添加
-H "Content-Type: application/json"参数
完整带请求头的命令示例:
curl.exe -v -X POST -H "Content-Type: application/json" http://localhost:9090/ -d '{"id": 1, "name": "tea","description": "Nice Tea", "price": 9.99, "sku": "TEA001"}' | jq
内容的提问来源于stack exchange,提问作者Vivek Gaur
相关产品推荐
相关产品推荐

