python轮子:适配requests.request的aiohttp异步请求

一、适配requests.request的aiohttp异步请求

python 复制代码
import aiohttp
from logaid import log
import ssl
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE

async def async_request(method, url, **kwargs) -> dict:
    ip = kwargs.get('proxies', {}).get('https', '')
    if ip:
        proxy = 'http://' + ip
        kwargs['proxy'] = proxy
    if kwargs.get('proxies'):
        del kwargs['proxies']

    for _ in range(3):
        try:
            async with aiohttp.ClientSession() as session:
                async with session.request(method, url, ssl=ssl_context, **kwargs) as resp:
                    if resp.status in [200]:
                        resp_json = await resp.json()
                        return resp_json
        except Exception as e:
            if _ == 2:
                log.error(e)
    return dict()
相关推荐
似水明俊德4 小时前
02-C#.Net-反射-面试题
开发语言·面试·职场和发展·c#·.net
qq_417695054 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水4 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
Thera7774 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
yy我不解释5 小时前
关于comfyui的mmaudio音频生成插件时时间不一致问题(一)
python·ai作画·音视频·comfyui
炘爚5 小时前
C语言(文件操作)
c语言·开发语言
阿蒙Amon5 小时前
C#常用类库-详解SerialPort
开发语言·c#
凸头6 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141596 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
Moksha2626 小时前
5G、VoNR基本概念
开发语言·5g·php