requests 調用接口
目的
之前一直使用七牛的cdn 服務,七牛云平臺有全套的運維工具供運維使用,但是現在項目使用https://console.nodecache.com/login 作爲cdn 該系統沒有提供相關接口,更新完成后都需要到登錄到後臺
執行刷新操作,十分繁瑣。 寫了一個脚本刷新cdn 集成到上綫系統裏面
code
#!/usr/bin/env python
#encoding: utf-8
import requests
from requests.cookies import RequestsCookieJar
import os
import sys
import time
import json
# 模拟浏览器操作 刷新cdn
url_list=["https:/xxxx/*","https://oooo/*"]
username="username"
passwd="password"
## 获取token
def get_tooken(username,passwd):
data=json.dumps({"username":username,"password":passwd})
response = requests.post("https://console.nodecache.com/api/user/login",data=data).text
print "获取token...."
return json.loads(response)["data"]["token"]
token=get_tooken(username,passwd)
# 刷新cdn url
def refresh_url(url):
data=json.dumps({"url":url})
header={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0",
"Cookie": "JSESSID=0; token="+token}
print header
response=requests.post("https://console.nodecache.com/api/clear/url",data=data,headers=header)
print response.text
#刷新所有资源 url /* 下的所有资源 正则匹配
def refresh_rule(url):
data=json.dumps({"rule":url})
header={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0",
"Cookie": "JSESSID=0; token="+token}
print "刷新域名",url
response=requests.post("https://console.nodecache.com/api/clear/rule",data=data,headers=header)
print response.text
for url in url_list:
refresh_rule(url)
解釋
1.瀏覽器打開調試模式 copy 請求 (此處一共2個請求, 請求登錄接口 獲取返回的token 加上token請求刷新cdn 的接口)
2.將脚本集成到發佈系統中,執行完成后 查看cdn 是否有刷新記錄