Llinux使用curl類比登陸並調用介面,llinuxcurl

來源:互聯網
上載者:User

Llinux使用curl類比登陸並調用介面,llinuxcurl

最近在玩nexus3倉庫。需要對nexus倉庫進行定時自動備份。由於nexus3倉庫在備份的過程中是不可以進行寫操作的,所以在執行備份的時候將nexus3設定為唯讀模式。通過 "F12"抓包到相關介面以及參數之後,通過curl調用介面將neuxs3倉庫設定為唯讀模式。

在第一次調用設定唯讀模式的介面後,返回如下結果,調用失敗,需要進行使用者認證才能調用,不然什麼阿貓阿狗都能調用你的介面豈不是亂套了。

{  "tid": 30,  "action": "coreui_DatabaseFreeze",  "method": "update",  "result": {    "message": "User is not permitted: nexus:*",    "authenticationRequired": false,    "success": false,    "data": []  },  "type": "rpc"}
既然如此,那就先類比登陸吧。在網上搜尋了下,curl在linux上的登陸命令為:
curl -d "username=YWRtaW4%3D&password=YWRtaW4xMjM%3D" "https://10.25.81.60:8081/service/rapture/session"
執行之後,在執行下面的命令以post調用介面調用介面
curl -i -X POST -H "'Content-type':'application/json'" -d '{"action": "coreui_DatabaseFreeze","method": "update","data": [{"frozen": false}],"type": "rpc","tid": 30}' https://10.25.81.60:8081/service/extdirect
結果發現沒有生效,於是我在本地用postman發送對應的登陸以及調用介面的http請求,發現可以成功的啟動nexus3的唯讀模式。

最後想了下,postman會自己儲存cookie等東西,而我在linux中並不會自動儲存cookie,我執行的那兩條curl命令實際上是沒有聯絡的。

如果要成功登陸,必須通過curl命令將登入到的cookie儲存下載,然後調用介面的時候將cookie帶上去。修改之後的指令碼如下:

#!/bin/bashloginStr='curl -c cookies -d "username=YWRtaW4%3D&password=YWRtaW4xMjM%3D"  https://10.25.81.60:8081/service/rapture/sessionfreezeStr="curl -i -X POST -b cookies -H "'Content-type':'application/json'" -d '{"action": "coreui_DatabaseFreeze","method": "update","data": [{"frozen": false}],"type": "rpc","tid": 30}' https://10.25.81.60:8081/service/extdirect"eval $loginStreval $freezeStr

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.