一、适配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()