Commit 89d53828ed276976fc05b16ad4c115cad9a42632

Authored by lixi
1 parent 165ae2bf

MySession.py新增需要填写method进行请求的方法

MySession.py维护了下网页端登录方法
MySession.py维护了下客户端端登录方法
commons/MySession.py
@@ -67,9 +67,12 @@ class mysession(): @@ -67,9 +67,12 @@ class mysession():
67 # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数 67 # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数
68 self.se = requests.session() 68 self.se = requests.session()
69 #更新cookie加入UAP_firmId 69 #更新cookie加入UAP_firmId
70 - firm=account.split("_")[0]  
71 co = requests.cookies.RequestsCookieJar() 70 co = requests.cookies.RequestsCookieJar()
  71 + #backup:通过提前配置的方法更新市场id
  72 + firm=account.split("_")[0]
72 co.set("UAP_firmId", self.firmid[firm]) 73 co.set("UAP_firmId", self.firmid[firm])
  74 + #通过客户端登录的方法更新市场id
  75 + # co.set("UAP_firmId", str(self.get_login_info(account).json()["data"]["user"]["firmId"]))
73 self.se.cookies.update(co) 76 self.se.cookies.update(co)
74 # 使用session对象的方法POST/GET等 77 # 使用session对象的方法POST/GET等
75 re = self.se.post(url=self.url, headers=self.header, data=self.body, proxies=self.proxies, **kwargs) 78 re = self.se.post(url=self.url, headers=self.header, data=self.body, proxies=self.proxies, **kwargs)
@@ -81,24 +84,42 @@ class mysession(): @@ -81,24 +84,42 @@ class mysession():
81 # 返回session对象,供其他接口使用 84 # 返回session对象,供其他接口使用
82 return self.se 85 return self.se
83 86
84 - def get_session_client(self, account, **kwargs):  
85 - "get_session和get_session_client的方法只能用一个"  
86 - "如下代码,可以通过配置文件来控制登录的账户session" 87 + def get_login_info(self, account, **kwargs):
  88 + "用于获取用户信息"
87 self.body_client.update({"userName":com.get_global_config("global_data", "account", account).split("&")[0]}) 89 self.body_client.update({"userName":com.get_global_config("global_data", "account", account).split("&")[0]})
88 self.body_client.update({"password":pwdCry(com.get_global_config("global_data", "account", account).split("&")[1])}) 90 self.body_client.update({"password":pwdCry(com.get_global_config("global_data", "account", account).split("&")[1])})
89 # requests.session()会话保持,比如使用session成功的登录了某个网站, 91 # requests.session()会话保持,比如使用session成功的登录了某个网站,
90 # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数 92 # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数
  93 + tmp = requests.post(url=self.url_client, headers=self.header_client, json=self.body_client, proxies=self.proxies, **kwargs)
  94 + # 使用session对象的方法POST/GET等
  95 + #获取关键信息供其他接口header使用
  96 + # self.UAP_accessToken=tmp.json()["data"]["accessToken"]
  97 + # self.UAP_refreshToken=tmp.json()["data"]["refreshToken"]
  98 + # 返回session对象,供其他接口使用
  99 + return tmp
  100 +
  101 + def get_session_client(self, account, **kwargs):
  102 + "get_session和get_session_client的方法只能用一个"
  103 + self.body_client.update({"userName": com.get_global_config("global_data", "account", account).split("&")[0]})
  104 + self.body_client.update( {"password": pwdCry(com.get_global_config("global_data", "account", account).split("&")[1])})
  105 + # requests.session()会话保持,比如使用session成功的登录了某个网站,
  106 + # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数
91 self.se = requests.session() 107 self.se = requests.session()
92 # 使用session对象的方法POST/GET等 108 # 使用session对象的方法POST/GET等
93 - re = self.se.post(url=self.url_client, headers=self.header_client, json=self.body_client, proxies=self.proxies, **kwargs) 109 + self.re = self.se.post(url=self.url_client, headers=self.header_client, json=self.body_client, proxies=self.proxies, **kwargs)
  110 + #组装请求的cookie
  111 + co = requests.cookies.RequestsCookieJar()
  112 + co.set("UAP_firmId", str(self.re.json()["data"]["user"]["firmId"]))
  113 + co.set("UAP_accessToken", self.re.json()["data"]["accessToken"])
  114 + co.set("UAP_refreshToken", self.re.json()["data"]["refreshToken"])
  115 + self.se.cookies.update(co)
94 #获取关键信息供其他接口header使用 116 #获取关键信息供其他接口header使用
95 - self.UAP_accessToken=re.json()["data"]["accessToken"]  
96 - self.UAP_refreshToken=re.json()["data"]["refreshToken"]  
97 - print(self.UAP_accessToken)  
98 - print(self.UAP_refreshToken) 117 + self.UAP_accessToken=self.se.cookies["UAP_accessToken"]
  118 + self.UAP_refreshToken=self.se.cookies["UAP_refreshToken"]
99 # 返回session对象,供其他接口使用 119 # 返回session对象,供其他接口使用
100 return self.se 120 return self.se
101 121
  122 +
102 def close_session(self): 123 def close_session(self):
103 "关闭session" 124 "关闭session"
104 self.se.close() 125 self.se.close()
@@ -140,6 +161,19 @@ class mysession(): @@ -140,6 +161,19 @@ class mysession():
140 res = requests.request(method=method, url=url, data=data, headers=self.webHeaders, **kwargs) 161 res = requests.request(method=method, url=url, data=data, headers=self.webHeaders, **kwargs)
141 return res 162 return res
142 163
  164 +
  165 + def request(self, method ,url, **kwargs):
  166 + """:param method: method for the new :class:`Request` object:
  167 + ``GET``, ``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``, or ``DELETE``.
  168 + """
  169 + # 记录日志
  170 + log.info("{0:=^86}".format(''))
  171 + log.info("{}\n{}\n".format(url, kwargs))
  172 + # 进行请求
  173 + re = self.se.request(method , url, **kwargs, proxies=self.proxies, timeout=self.timeout)
  174 + return re
  175 +
  176 +
143 def get(self, url, **kwargs): 177 def get(self, url, **kwargs):
144 """Sends a GET request. Returns :class:`Response` object. 178 """Sends a GET request. Returns :class:`Response` object.
145 179
@@ -252,10 +286,9 @@ class mysession(): @@ -252,10 +286,9 @@ class mysession():
252 my = mysession() 286 my = mysession()
253 my.set_mark() 287 my.set_mark()
254 my.cliLogin() 288 my.cliLogin()
255 -s1 = my.get_session("sg_user01")  
256 -# s2 = my.get_session("sg_user02")  
257 -# print(s1.cookies)  
258 -# s3 = my.get_session_client("sg_user02")  
259 -# print(s3.cookies)  
260 -# sg1=my.get_session("sg_user01")  
261 -# sy1=my.get_session("sy_user01") 289 +s1 = my.get_session_client("sg_user01")
  290 +s2 = my.get_session_client("sg_user02")
  291 +# s3 = my.get_session("sg_user01")
  292 +# s3= my.get_session_client("sg_user02")
  293 +# sg=my.get_session_client("sg_user01")
  294 +# sy=my.get_session_client("sy_user01")
262 \ No newline at end of file 295 \ No newline at end of file
report/test.log
1 -[2021-07-22 15:46:06] [INFO] : ======================================================================================  
2 -[2021-07-22 15:46:06] [INFO] : http://test.card.diligrp.com:8386/accountQuery/page.action  
3 -rows=10&page=1&sort=card_create_time&order=desc  
4 -None  
5 -{'headers': {'Host': 'test.card.diligrp.com:8386', 'Connection': 'keep-alive', 'Content-Length': '47', 'Accept': 'application/json,text/javascript,*/*;q=0.01', 'Origin': 'http://test.card.diligrp.com:8386', 'X-Requested-With': 'XMLHttpRequest', 'User-Agent': 'Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/84.0.4147.105Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Referer': 'http://test.card.diligrp.com:8386/accountQuery/list.html', 'Accept-Encoding': 'gzip,deflate'}} 1 +[2021-07-22 17:11:13] [INFO] : ======================================================================================
  2 +[2021-07-22 17:11:13] [INFO] : http://test.card.diligrp.com:8386/accountQuery/page.action
  3 +{'headers': {'Host': 'test.card.diligrp.com:8386', 'Connection': 'keep-alive', 'Content-Length': '47', 'Accept': 'application/json,text/javascript,*/*;q=0.01', 'Origin': 'http://test.card.diligrp.com:8386', 'X-Requested-With': 'XMLHttpRequest', 'User-Agent': 'Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/84.0.4147.105Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Referer': 'http://test.card.diligrp.com:8386/accountQuery/list.html', 'Accept-Encoding': 'gzip,deflate'}, 'data': 'rows=10&page=1&sort=card_create_time&order=desc'}
  4 +