requests
模块是 python3
中用于网络访问的模块,相比urllib
,urllib2
,httplib
,httplib2
等相似功能的模块,requests
模块是使用率最高的一个。但是requests
智能进行同步的网络访问,无法进行异步操作,今天我们介绍一下如何使用asyncio + aiohttp
来实现类似requsets
的异步访问接口。
一、安装
asyncio
是 python3
内置的库,可以直接引入,无需安装,但aiohttp
是第三方库,需要安装后才能使用,安装方法如下:
pip3 install aiohttp
1、封装一个Http类
# coding=utf-8
import aiohttp
class Http:
client = None
@classmethod
async def init(cls):
if cls.client is None:
cls.client = aiohttp.ClientSession()
@classmethod
async def get(cls, *args, **kargs):
await cls.init()
return await cls.client.get(*args, **kargs)
@classmethod
async def post(cls, *args, **kargs):
await cls.init()
return await cls.client.post(*args, **kargs