转载请注明出处:
用curl命令在服务器上调试接口时,一直调试不通,执行如下:
在用curl 执行之后,返回了一个 作业id [ 1 ] 23926 ; 并打印出了 调用执行的url,发现 真正执行的url 与请求的url 长度不一致, 且 & 符号后面的参数都被截断了。
具体原因为:终端会将 &
视为特殊字符,表示将前台命令放入后台执行,并立即返回一个作业ID。因此,如果在 URL 中使用 &
符号而没有对其进行适当的转义或引用,终端会尝试将命令分隔成多个部分,并且只有第一个部分被视为有效的 URL 参数。
解决方法:对 调用的 url 进行双引号括住,避免解析错误:
加了双引号之后就可以正常调用了。
另外,在用 curl 调试接口时,可以添加 -v 参数,可以看到跟详细的过程参数,这对 调试时定位问题很有帮助。