Tornado请求处理程序的HTTP客户端混合
sprockets.mixins.http的Python项目详细描述
< Tornado RequestHandlers的HTTP客户端MIXIN。在出错时自动重试,在速率受限时休眠,并使用MsgPack和json处理内容编码和解码。
安装
sprockets.mixins.http在 Python Package Index 可以通过pip或easy_install:安装
pip install sprockets.mixins.http
如果您想使用tornado.curl_httpclient.curlasynchttpclient, 您可以使用以下命令安装pycurl:
pip install sprockets.mixins.http[curl]
要求
- ietfparse>;=1.5.1
- tornado>;=5
- sprockets.mixins.mediatype[msgpack]>;=3
示例
本示例演示sprockets.mixins.http
的最基本用法fromtornadoimportioloop,webfromsprockets.mixinsimporthttpclassRequestHandler(http.HTTPClientMixin,web.RequestHandler):asyncdefget(self,*args,**kwargs):response=awaitself.http_fetch('https://api.github.com')ifnotresponse.ok:self.set_status(response.code)self.write(response.body)if__name__=="__main__":app=web.Application([(r'/',RequestHandler)])app.listen(8000)ioloop.IOLoop.current().start()
与Tornado一样,使用curl客户端有许多好处:
fromtornadoimporthttpclient,ioloop,webfromsprockets.mixinsimporthttphttpclient.AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')classRequestHandler(http.HTTPClientMixin,web.RequestHandler):asyncdefget(self,*args,**kwargs):response=awaitself.http_fetch('https://api.github.com')ifnotresponse.ok:self.set_status(response.code)self.write(response.body)if__name__=="__main__":app=web.Application([(r'/',RequestHandler)])app.listen(8000)ioloop.IOLoop.current().start()
环境变量
HTTP_MAX_CLIENTS | An optional setting that specifies the maximum number of simultaneous asynchronous HTTP requests. If not specified, the default Tornado value of 10 will be used. |
许可证
sprockets.mixins.http在3-Clause BSD license下释放。