#encoding=utf-8
import requests
requests.packages.urllib3.disable_warnings()
import json
from retrying import retry
@retry
def ListVpcsRequest(requests,region,project_id,token):
url = "https://vpc."+region+".xxx/"+project_id+"/vpc/vpcs" #vpc的url 由地域和项目id组成
payload = "xxx"
headers = {
"content_type":"application/json",
'x-auth-token':token, #token传到头文件
"cache-control":"no-cache",
}
proxies = {
'http': "xxx:8080",
'https': "xxx:8080"
}
res = requests.request("GET",url,data=payload,headers=headers,proxies=proxies,verify=False)
return res
def GetVpcInfo(domain,region,project_id,token):
for i in range(10):
try:
vpc_info = ListVpcsRequest(requests,region,project_id,token)
break
except Exception as e:
print(e)
def get_Token(domain,region): #(domain账号,地域)
url = "https://xxx."+region+".xxx/tokens" #token路径,每个地域都不一样
#可用postman获取
payload = {
"auth":{
"identity":{
"methods":[
"password"
],
"password":{
"user":{
"domain":{
"name":domain
},
"name":"xxx", #个人账号
"password":"xxx" #个人密码
}
}
},
"scope":{
"project":{
"name":None
}
}
}
}
header = {
"content_type":"application/json",
"cache-control":"no-cache",
}
#代理地址,看情况使用
proxies = {
'http':"xxx:8080",
'https':"xxx:8080"
}
token = ""
#防止失败,循环获取
for i in range(10):
try:
res = requests.request("POST",url,data=json.dumps(payload),headers=header,proxies=proxies,verify=False)
token = res.headers['X-Subject-Token']
break
except Exception as e:
print(e)
return token
domain = 'xxx' #domain账号
region = 'xxx' #地域
project_id = 'xxx'
token = get_Token(domain,region)
GetVpcInfo(domain,region,project_id,token)
华为云调用api获取vpc信息(token方式)
最新推荐文章于 2025-09-03 10:22:37 发布
744

被折叠的 条评论
为什么被折叠?



