本文介绍curl的:
1)参数被截断;
2)自动转义编码;
3)如何发GET和POST;
参数被截断
若欲发送:curl http://host:port/test?a=1&b=2
curl会将其作为两条命令发送,此时需要对参数分割符&进行转义(见http://blog.csdn.net/top_code/article/details/41447281),即改为
curl http://host:port/test?a=1\&b=2
或者
curl "http://localhost:8080/test/param?a=1&b=2"
自动转义编码(限POST方式);
http参数中的特殊字符(如[]{}+ 等)需要特殊处理,即替换为%ASCII码(见http://blog.csdn.net/hellochenlian/article/details/38512781)。
curl命令可以自动完成这一工作,仅限POST方式,GET方式需要使用者自行转换。
若欲发送:http://host:port/test/{"a":123.0,"b":["456"]},可执行命令:
curl http://localhost:8080/test/%7B%22a%22%3A123%2C%22b%22%3A%5B%22456%22%5D%7D
或
curl -H "Content-Type: application/json" -X POST --data '{"a":123,"b":["456"]}' http://localhost:8080/test
通过GET和POST发送
使用-X POST或--data、--data-*参数来指定POST方式发送,如:
curl -H "Content-Type: application/json" -X POST --data '{"a":123,"b":["456"]}' http://localhost:8080/test
或
curl --data "a" http://localhost:8080/test
其余情况为GET方式,如
curl http://localhost:8080/test/%7B%22a%22%3A123%2C%22b%22%3A%5B%22456%22%5D%7D
curl常用命令还可以参考http://www.cnblogs.com/gbyukg/p/3326825.html