Aiohttp是Python的最快的非同步HTTP客戶端/伺服器庫包
Aiohttp用於asyncio和 Python 的非同步 HTTP 客戶端/伺服器。
主要特點
- 支援客戶端和HTTP 伺服器。
- 支援開箱即用的伺服器 WebSockets和 客戶端 WebSockets,沒有回撥地獄。
- Web 伺服器具有中介軟體、 訊號和可插入路由。
客戶端程式碼:
import aiohttp import asyncio async def main(): async with aiohttp.ClientSession() as session: async with session.get('http://python.org') as response: print("Status:", response.status) print("Content-type:", response.headers['content-type']) html = await response.text() print("Body:", html[:15], "...") loop = asyncio.get_event_loop() loop.run_until_complete(main()) |
伺服器示例:
from aiohttp import web async def handle(request): name = request.match_info.get('name', "Anonymous") text = "Hello, " + name return web.Response(text=text) app = web.Application() app.add_routes([web.get('/', handle), web.get('/{name}', handle)]) if __name__ == '__main__': web.run_app(app) |
有人將其與其他Python非同步庫比較,發現其是最快的:
- 第一代是可靠的老requests
- 第二代是使用執行緒發出請求的方法。為每個請求分拆一個本機執行緒,讓它們在幕後執行。
- 第三代使用aiohttp
- 第四代使用HTTPX,它是 Python Web 客戶端的現代實現。
- 使用pycurl
結果令人印象深刻,但 aiohttp 庫仍然更快。
相關文章
- UE 客戶端和伺服器上的時間同步客戶端伺服器
- Java HTTP/2 客戶端:從阻塞到非同步 - sanjeevrJavaHTTP客戶端非同步VR
- Python socket的客戶端Python客戶端
- Java HTTP 客戶端的比較 - reflectoringJavaHTTP客戶端
- HTTP 客戶端:RestClient、WebClient、RestTemplateHTTP客戶端RESTclientWeb
- HTTP客戶端框架之RetrofitHTTP客戶端框架
- HTTP客戶端連線,選擇HttpClient還是OkHttp?HTTP客戶端client
- Python非同步爬蟲(aiohttp版)Python非同步爬蟲AIHTTP
- Swoole 協程 MySQL 客戶端與非同步回撥 MySQL 客戶端的對比MySql客戶端非同步
- 實現客戶端與服務端的HTTP通訊客戶端服務端HTTP
- RetrofitJs – TypeScript實現的宣告式HTTP客戶端JSTypeScriptHTTP客戶端
- 教你如何構建非同步伺服器和客戶端的 Kotlin 框架 Ktor非同步伺服器客戶端Kotlin框架
- netty系列之:搭建客戶端使用http1.1的方式連線http2伺服器Netty客戶端HTTP伺服器
- netty系列之:自建客戶端和HTTP伺服器互動Netty客戶端HTTP伺服器
- Easyvision中的伺服器與客戶端伺服器客戶端
- python socketserver處理客戶端的流程PythonServer客戶端
- reqwest:簡單而強大的 Rust HTTP 客戶端RustHTTP客戶端
- Jtti:怎麼構建非同步伺服器和客戶端的Kotlin框架KtorJtti非同步伺服器客戶端Kotlin框架
- VNC客戶端是Windows,VNC客戶端是Windows如何進行操作VNC客戶端Windows
- 使用Netty實現HTTP2伺服器/客戶端的原始碼和教程 - BaeldungNettyHTTP伺服器客戶端原始碼
- 高效能 HTTP 客戶端 undici 初探HTTP客戶端
- Asp .Net Core 系列:整合 Refit 和 RestEase 宣告式 HTTP 客戶端庫RESTHTTP客戶端
- Redis 6.0 客戶端快取的伺服器端實現Redis客戶端快取伺服器
- 精講RestTemplate第2篇-多種底層HTTP客戶端類庫的切換RESTHTTP客戶端
- WebClient: Spring的新的HTTP反應式客戶端 - spring.ioWebclientSpringHTTP客戶端
- DataGrip,一款資料庫客戶端工具,IDEA的兄弟是真香!資料庫客戶端Idea
- 譯文——OkHttp, 安卓和Java應用的HTTP&HTTP2.0客戶端HTTP安卓Java客戶端
- 使用 Golang 實現 appium/WebDriverAgent 的客戶端庫GolangAPPWeb客戶端
- 記筆記:C# Socket客戶端監聽伺服器端處理方案【同步】筆記C#客戶端伺服器
- 什麼是客戶端渲染?客戶端
- HTTPie:替代 Curl 和 Wget 的現代 HTTP 命令列客戶端HTTPwget命令列客戶端
- 拓客引流最快的方法是什麼
- HTTP Keep-Alive模式客戶端與伺服器如何判定傳輸完成HTTPKeep-Alive模式客戶端伺服器
- Linux下簡單的ACE socket客戶端和伺服器端Linux客戶端伺服器
- 利用tirpc庫實現簡單的客戶端和服務端RPC客戶端服務端
- Windows客戶端的JProfiler遠端監控Linux上的Tomcat伺服器Windows客戶端LinuxTomcat伺服器
- Android so庫防客戶端破解的解決方案Android客戶端
- Zookeeper C客戶端庫編譯客戶端編譯