很多解释都注明在代码截图中
#封装get和post
import logging
import requests
class RequestsHandler:
def get(self,url,params,**kw):#**kwargs是不定长参数,headers是放在这个不定长参数里
#'''封装一个get方法,发送get请求'''
try:#当处理不成功时,比如URL地址输入方式错误,或者接口超时timeout,需要抛出一个异常
res= requests.get(url,params=params,**kw)
except TimeoutError:
# 记录日志信息,放入logger里边,这样我们就能知道问题出在哪里
logging.error('访问不成功')
else:
return res
def post(self,url,data=None,json=None,**kw):
# '''封装一个post方法,发送post请求'''
try:#当处理不成功时,比如URL地址输入方式错误,或者接口超时timeout,需要抛出一个异常
res = requests.get(url,data=data,json=json,**kw)#其中data是form表单形式的
except TimeoutError:
# 记录日志信息,放入logger里边,这样我们就能知道问题出在哪里
logging.error('访问不成功')
else:
return res
#vist方法是整合接口请求的方法
def vist(self,method,url,params= None,data=None,json=None,**kw):
'''访问接口'''
'GET,如果传输进来的是大写的GET。可以使用lower方法'
if method.lower == 'get':
return self.get(url,params=params,**kw)
elif method.lower == 'post':
return self.post(url,data=data,json=json,params=params,**kw)
#如果接口中还有其他的请求方式比如put,option之类色,可以用下方的方法,实际工作中常用的是get和post
else:
return requests.request(method,url,**kw)
def json(self,method,url,params= None,data=None,json=None,**kw):#json是要再vist方法下去进行进一步的处理
'''访问接口,获取json数据'''
res = self.vist(url,method,params=params,data=data,json=json,**kw)
#获取json数据
try:
return res.json()
except:
#记录日志信息
logging.error('不是json格式的数据')
总结tips:
1、需要有接口会抛出异常的场景,比如测试一个接口如果是超时情况发生(断网),程序就会终止,为了让程序正常进行,则需要try,同时异常的时候可以用logging记录下来,这个后续会在整个框架里继续使用,后续文章会详细介绍logging
2、定义每一个方法的时候如果不知道怎么传入参数,可以点击进入查看源代码
以上是封装方法的框架,先去了解框架,然后再去结合实际应用起来