curl 使用及调用url时带有&符号被截断解决
转载请注明出处:
1.curl 调用带有&符号的ulr被截断问题解决
用curl命令在服务器上调试接口时,一直调试不通,执行如下:
在用curl 执行之后,返回了一个 作业id [ 1 ] 23926 ; 并打印出了 调用执行的url,发现 真正执行的url 与请求的url 长度不一致, 且 & 符号后面的参数都被截断了。
具体原因为:终端会将 &
视为特殊字符,表示将前台命令放入后台执行,并立即返回一个作业ID。因此,如果在 URL 中使用 &
符号而没有对其进行适当的转义或引用,终端会尝试将命令分隔成多个部分,并且只有第一个部分被视为有效的 URL 参数。
解决方法:对 调用的 url 进行双引号括住,避免解析错误:
加了双引号之后就可以正常调用了。
2. curl 请求
curl 在Linux 端模拟服务器请求:
- -H 后接相关请求头的设值
- -X 接请求的方法类型:GET ,POST ,DELETE,PUT
- -d 接请求体:可以为json或string
-
-k
参数指定跳过 SSL 检测 -v
参数输出通信的整个过程,用于调试
curl -H 'Content-Type: application/json' -H 'Secret-Message: xyzzy' https://google.com -X POST -d '{"login": "emma", "pass": "123"}'
curl 一个 put请求:
curl -X PUT -H "Header-Name1: Header-Value1" -H "Header-Name2: Header-Value2" http://example.com
在用 curl 调试接口时,可以添加 -v 参数,可以看到跟详细的过程参数,这对 调试时定位问题很有帮助。
3.查看公网出口信息
查看本机公网ip
curl ifconfig.me
查看本机公网出口ip
curl cip.cc