我正在尝试登录在线服务器 此服务器不断更改API版本,我必须将其指定为标头参数之一 目前我将其保存为常量值并在更改时手动更改它,但我认为这不是一种好的方法,所以我试图以编程方式实现它。
这是尝试连接并捕获API版本更改的函数:
API_VERSION = 78
def connect_to_server(self, session, url, headers, data):
r = session.post(url, headers=headers, json=data)
if r.status_code != 200:
if r.status_code == 449:
api_num_new = [int(s) for s in r.content.split() if s.isdigit()]
print "Failed because of api version - Change API_VERSION to: {}".format(api_num_new[0])
headers.update({"LKQD-Api-Version": api_num_new[0]})
self.update_api_version(api_num_new[0])
return self.connect_to_server(session, url, headers, data)
raise IOError("Connecting failed! Status code: {}. Message: {}").format(str(r.status_code),str(r.content))
response = r.json()
if response[API_STATUS_KEY] != API_SUCCESS_VALUE:
raise IOError(
"Connecting to the server failed! Error: " + str(response[API_ERROR_KEY]))
return session
def update_api_version(api_num_new):
raise Exception("Not implemented")
我的问题是处理这个问题的最佳方法是什么? 我考虑过使用YAML文件,但想知道是否存在更合适的解决方案。