# 处理http请求(只对外开放request方法)
import requests
import json
class HttpClient():
def __int__(self):
pass
def request(self, requestUrl, requestMethod, paramsType, requestData, headers = None, cookies = None):
# 处理http请求,包括get、post
if requestMethod.lower() == "post": #post有form和json两种方式传参数
if paramsType == "form":
response = self.__post(requestUrl,data = json.dumps(requestData), headers = headers)
return response
elif paramsType == "json":
response = self.__post(requestUrl,json = json.dumps(requestData), headers = headers)
return response
elif requestMethod.lower() == "get": #get有拼接url和传参params两种方式
if paramsType == "url": #get一般都是使用url拼接
requestUrl = "%s%s" %(requestUrl,requestData)
response = self.__get(requestUrl, headers=headers, cookies = None)
return response
elif paramsType == "params": #这种传参数的情况现在一般不用
response = self.__get(requestUrl, requestData, headers=headers, cookies=None)
return response
elif requestMethod.lower() == "put/delete/...": #如果有其他的请求方式,可以在这里继续补充
pass
# 私有方法(对外界隐藏)
def __post(self, url, data = None, json = None, **kwargs): #没有写cookies和headers,通过**kwargs可以传进来
# 处理post各种情况的请求
response = requests.post(url, data = data, json = json, **kwargs) #后面的data和json是传进来的参数值,前面的data和json是post方法需要传的参数名称
return response
# 私有方法(对外界隐藏)
def __get(self, url, params = None, **kwargs):
# 处理get各种情况的请求
response = requests.get(url = url, params = params, **kwargs)
return response
if __name__ == "__main__":
hc = HttpClient()
res = hc.request("http://xx.xx.xx.xx/register/", "post", "form", {"username":"yuyu12345", "password":"yuyu12345", "email":"yuyu12345@qq.com"})
print(res.status_code)
print(res.json())
Excel接口自动化(5)封装构造接口请求需要的数据
最新推荐文章于 2023-05-08 15:03:43 发布