#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方式)
最新推荐文章于 2024-11-13 22:26:06 发布