from urllib.parse import quote, unquote
"""post请求"""
def __init__(self,logger):
self.logger=logger
def request_by_post(self, session, url, param):
self.logger_info(url,param)
response = session.post(url,json=param)
self.assert_status(response.status_code,response.text)
return response
# post请求 默认是不会处理URl参数的所以 当post请求url带参数时需要自己去处理下
def dispose_url(self,url,dist):
reality_url = ""
url_split = url.split("?")
#有参数替换没有不加密替换
if len(url_split) == 2:
url_split[1] = quote(url_split[1], encoding="UTF-8", errors="URL参数加密失败")#对url上的参数进行加密
reality_url = url_split[0] + "?" + url_split[1]
split = url_split[0].split("/")
for s in split:
if s.endswith("}") and s.startswith("{Reset_"):
key = s[7:-1]
val = dist.get(key)
s = val
reality_url += s
else:
reality_url += s + "/"
if len(url_split)==2:
reality_url=reality_url+"?"+url_split[1]
return reality_url