前言
今天在修改完一个预生产环境的缺陷时,我打算测试一下,但是前端还没写完呢,怎么测呢?我打算使用postman测试,但是我也不知道外网ip地址,然后我的同事飞哥告诉我可以使用堡垒机用内网ip测试,使用curl命令。
curl是什么?
利用URL规则在命令行下工作的文件传输工具
curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
curl的GET请求:
curl http://www.example.com/example?param1=nickwolfe¶m2=12345
curl的POST请求:
使用-d选项
curl -d "param2=nickwolfe¶m2=12345" http://www.example.com/example
json传参:
curl -i -X POST -H "'Content-type':'application/json'" -d '{"a":"哈哈","b":"嘿嘿"}' http://www.example.com/example/doPost
保存文件
curl -o text.iso http://example.com/text.iso # 指定文件名
或 curl -O http://example.com/text.iso #默认文件名text.iso
还可以使用重定向符号 >
实践
因为是get请求,我使用 curl + 地址发起请求,其中内网ip地址是从日志系统找到的,端口是问飞哥,类似下面的命令
curl http://{ip}:{port}/doSomething?a=1&b=2
报了系统异常,告诉我必要参数缺失
Required String parameter 'b' is not present
我测试了一个不需要传参的接口,能够正常获取到数据。
于是我便打开baidu开始搜索: curl get 参数 ,就找到了答案
&在linux操作系统命令下,会让前面的命令在后台去执行,所以需要使用""将&转义使用,就可以获取到多个参数了。curl http://{ip}:{port}/doSomething?a=1\&b=2
顺便贴几个相关的常见命令:
当终端进程正在运行时使用Ctrl + z 命令会让命令进入后台并且暂停;
通过jobs命令可以查看当前终端正在运行和暂停的进程;
命令fg可以将后台运行的进程任务放到前台运行;
bg 命令会将任务放置到后台执行,如果任务是暂停状态,也会被启动起来。