问题:
休息在家,被告知要启动测试环境的一个定时任务,但是服务器在内网,连上vpn只能访问内网的开发环境,无法访问测试环境,于是进开发环境服务器,ping测试环境的ip,发现是通的,于是想到通过开发环境服务器向测试环境服务器发送请求,来达到启动测试环境定时任务的方法,因为接口都是restful风格的,可以直接使用linux系统的curl来模拟Post请求。
解决:
- 进入开发环境服务器,执行curl命令
curl http://ip:port/projectName
发现任何数据返回
- 想到应用是需要登录验证,于是登录进入开发环境的应用系统观察请求,发现cookie中应该是保存有登录验证所需的数据
- 能否curl请求时,携带这个cookie去操作我要调用的接口呢?答案是可以的
curl --cookie "key=value" -d "jobId=1&jobName=testJob" "http://ip:port/projectName/startJob"
- 参数解释:
--cookie
表示请求时带上cookie,"key=value"表示cookie的值,可以直接将上图浏览器中的cookie数据复制拷贝
-d "jobId=1&jobName=testJob"
-d 表示使用post请求,后面双引号中的数据就是接口所需要的的参数
"http://ip:port/projectName/startJob"
就是我要请求的路径
- 参数解释:
- 至此,启动完成