MyRequest类
2021/7/7 23:36:44
本文主要是介绍MyRequest类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import requests import traceback from loguru import logger class MyDict(dict): def __getattr__(self, item): value = self.get(item) if type(value) == dict: value = MyDict(value) if isinstance(value,list) or isinstance(value,tuple): value = list(value) for index,v in enumerate(value): if isinstance(v,dict): value[index] = MyDict(v) return value class MyRequest: def __init__(self,url,params=None,data=None,headers=None,files=None,json=None,timeout=5): self.url = url self.params = params self.data = data self.headers = headers self.files = files self.json = json self.timeout = timeout def __get_response(self): try: ret = self.response.json() except: logger.warning("接口返回的不是json!无法转成字典!response:{}", self.response.content) return MyDict() logger.debug("接口返回数据:{}", ret) return MyDict(ret) def __request(self,method): logger.debug("url:{},params:{},data:{},json:{},files:{},headers:{}",self.url,self.params,self.data,self.json,self.files,self.headers) try: self.response = requests.request(method,url=self.url,params=self.params,data=self.data, json=self.json,headers=self.headers,files=self.files,verify=False,timeout=self.timeout) except: logger.error("接口不通,请求出错,错误信息是:{}",traceback.format_exc()) return MyDict() return self.__get_response() def get(self): return self.__request("get") def post(self): return self.__request("post") def put(self): return self.__request("put") def delete(self): return self.__request("delete") if __name__ == '__main__': data = {"file":open("myDict.py",'rb')} r = MyRequest("http://118.24.3.41/api/file/file_uploa",files=data) # result = r.get() ret1 = r.post()
这篇关于MyRequest类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现