测试CURL脚本Create方法报错求助:数据转换错误与命令未找到
解决CURL测试Job Create接口时的两类错误
咱们一步步来拆解你碰到的这两个问题,先搞定脚本语法问题,再解决请求数据的错误:
问题2:scripts/jobs/create.sh: line 15: --data: command not found
这个错误是shell脚本的语法问题,大概率是CURL命令换行时没正确转义,或者引号没闭合,导致shell把--data当成了一个单独的命令来执行。
举个正确的多行CURL脚本写法,你可以参考调整:
curl -X POST http://你的API地址/jobs \ -H "Content-Type: application/json" \ --data '{ "url": "https://example.com" }'
关键点:
- 每行末尾的
\不能少,它告诉shell“当前命令还没结束,下一行是延续” --data后面的单引号要完整包裹整个JSON内容,确保没有漏写或多写引号
问题1:{"error":{"message":"Cannot convert undefined or null to object","error":{}}}
解决完脚本语法问题后,这个错误基本是因为请求不符合你的Job Schema要求,或者JSON解析失败导致的。结合你的Schema(url是必填字符串),具体原因和修复方法如下:
常见原因及修复:
- 没传必填的
url字段:检查--data里的JSON是否包含"url"键,比如必须要有"url": "https://你的测试地址.com"这样的内容 - JSON格式错误:JSON要求键名必须用双引号包裹,不能用单引号或不加引号。比如错误写法
'{url: "test.com"}',正确写法是'{"url": "test.com"}' - 没设置正确的请求头:后端需要知道你发的是JSON数据,所以必须在CURL里加
-H "Content-Type: application/json"参数,否则后端可能无法解析请求体
快速测试建议
你可以先跳过脚本,直接在终端里执行完整的CURL命令,验证接口是否正常:
curl -X POST http://localhost:3000/jobs -H "Content-Type: application/json" --data '{"url": "https://test.example.com"}'
如果这个命令能成功返回,再把它整理到shell脚本里,注意换行时的转义符和引号问题就好啦。
内容的提问来源于stack exchange,提问作者SarahBurke
相关产品推荐
相关产品推荐

