問題:
休息在家,被告知要啟動測試環境的一個定時任務,但是服務器在內網,連上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"
就是我要請求的路徑
- 參數解釋:
- 至此,啟動完成