1. 程式人生 > 實用技巧 >Linux curl攜帶cookie測試介面

Linux curl攜帶cookie測試介面

問題:

休息在家,被告知要啟動測試環境的一個定時任務,但是伺服器在內網,連上vpn只能訪問內網的開發環境,無法訪問測試環境,於是進開發環境伺服器,ping測試環境的ip,發現是通的,於是想到通過開發環境伺服器向測試環境伺服器傳送請求,來達到啟動測試環境定時任務的方法,因為介面都是restful風格的,可以直接使用linux系統的curl來模擬Post請求。

解決:

  1. 進入開發環境伺服器,執行curl命令
    curl http://ip:port/projectName
    發現任何資料返回
  2. 想到應用是需要登入驗證,於是登入進入開發環境的應用系統觀察請求,發現cookie中應該是儲存有登入驗證所需的資料
  3. 能否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"
      就是我要請求的路徑
  4. 至此,啟動完成