轻量级http客户端
bareclient的Python项目详细描述
bareclient
一个简单的异步http客户端。
说明
此包为h11提供异步传输。
它很少试图提供任何有用的特性。
安装
这是一个Python3.7包。
pip install bareclient
用法
基本用法是创建一个HttpClient
。
importasynciofrombareclientimportHttpClientimportsslasyncdefmain(url,headers,ssl):asyncwithHttpClient(url,method='GET',headers=headers,ssl=ssl)as(response,body):print(response)ifresponse.status_code==200:asyncforpartinbody():print(part)url='https://docs.python.org/3/library/cgi.html'headers=[(b'host',b'docs.python.org'),(b'connection',b'close')]ssl_context=ssl.SSLContext()loop=asyncio.get_event_loop()loop.run_until_complete(main(url,headers,ssl_context))
还有一个用于保持活动连接的HttpSession
。
importasynciofrombareclientimportHttpSessionimportsslasyncdefmain(url,headers,paths,ssl):asyncwithHttpSession(url,ssl=ssl)asrequester:forpathinpaths:response,body=awaitrequester.request(path,method='GET',headers=headers)print(response)ifresponse.status_code==200:asyncforpartinbody():print(part)url='https://docs.python.org'headers=[(b'host',b'docs.python.org'),(b'connection',b'keep-alive')]paths=['/3/library/cgi.html','/3/library/urllib.parse.html']ssl_context=ssl.SSLContext()loop=asyncio.get_event_loop()loop.run_until_complete(main(url,headers,paths,ssl_context))
最后还有一个helper函数来获取json。
importasyncioimportsslfrombareclientimportget_jsonasyncdefmain(url,ssl):obj=awaitget_json(url,ssl=ssl)print(obj)url='https://jsonplaceholder.typicode.com/todos/1'ssl_context=ssl.SSLContext()loop=asyncio.get_event_loop()loop.run_until_complete(main(url,ssl_context))