跳转到主要内容

Tornado RequestHandlers的HTTP客户端混入

项目描述

为Tornado RequestHandlers提供的HTTP客户端混入。自动在错误时重试,当速率限制时休眠,并使用MsgPack和JSON处理内容编码和解码。

Version Build Status CodeCov Docs

安装

sprockets.mixins.http可在Python包索引中找到,并通过pip安装

pip install sprockets.mixins.http

如果您想使用具有众多优势的pycurlcurl客户端,您可以通过以下方式安装

pip install sprockets.mixins.http[curl]

文档

https://sprocketsmixinshttp.readthedocs.io

需求

示例

此示例演示了sprockets.mixins.http的最基本用法

from tornado import ioloop, web
from sprockets.mixins import http


class RequestHandler(http.HTTPClientMixin, web.RequestHandler):

   async def get(self, *args, **kwargs):
       response = await self.http_fetch('https://api.github.com')
       if not response.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客户端

from tornado import httpclient, ioloop, web
from sprockets.mixins import http

httpclient.AsyncHTTPClient.configure(
    'tornado.curl_httpclient.CurlAsyncHTTPClient')


class RequestHandler(http.HTTPClientMixin, web.RequestHandler):

   async def get(self, *args, **kwargs):
       response = await self.http_fetch('https://api.github.com')
       if not response.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状态码在400范围内的响应...

HTTPResponse对象的主体被简化为仅包含错误消息。这是此混入的默认行为。

对于带有问题详情(RFC 7807)的JSON响应体,您可能希望除了错误消息之外还有更多信息。为了访问完整的、反序列化的响应体;使用此混入的类可以设置

self.simplify_error_response = False

环境变量

HTTP_MAX_CLIENTS

一个可选设置,指定同时进行的最大异步HTTP请求数量。如果未指定,将使用Tornado的默认值10。

许可证

sprockets.mixins.http 采用 3-Clause BSD 许可协议 发布。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

sprockets.mixins.http-2.6.0.tar.gz (11.0 kB 查看哈希值)

上传时间

构建分发

sprockets.mixins.http-2.6.0-py2.py3-none-any.whl (10.1 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者