gpt4 book ai didi

python - 如何在 Tornado 请求中执行 Tornado 请求

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:01 27 4
gpt4 key购买 nike

我正在使用 Tornado Web Server (版本 4.1)使用 Python 2.7 创建 REST Web 应用程序。我的请求处理程序之一 (web.RequestHandler) 使用多部分/混合内容类型处理由多个 HTTP 请求组合成一个 HTTP 请求组成的批处理请求。我目前的批处理请求处理程序能够接收 POST 请求并将多部分/混合内容解析为如下所示的单个请求:

GET /contacts/3 HTTP/1.1
Accept: application/json

我的问题是,从我的请求处理程序中将这些内部批处理请求转换为 Tornado 可以服务的请求的好方法是什么?我想在我的批处理请求处理程序中收集响应,并且在这些请求全部完成后,返回包含所有批处理响应的单个多部分/混合响应。

使用 HTTPClient 来执行批处理请求感觉有点矫枉过正。看起来我应该能够构建一个请求对象并将其注入(inject)到 web.Application 中进行处理——但是我不知道如何做到这一点。谢谢!

最佳答案

Tornado 对此没有任何直接支持。通过 HTTP 客户端可能是最简单的解决方案。但是,如果您真的有兴趣避免这条路线,这里有一个解决方案草图,它依赖于 tornado.httputil 模块中定义的接口(interface)。

  1. 定义一个实现 HTTPConnection 的类通过将参数保存到 writewrite_headers 到内部缓冲区来实现接口(interface)。

  2. 应用程序 是一个 HTTPServerConnectionDelegate .使用您的连接类的实例作为两个参数调用其 start_request 方法(第一个参数并不重要,但它应该是唯一的,因为我们不会重用该对象的“连接”很好)。

  3. start_request 返回 HTTPMessageDelegate .调用其 headers_receiveddata_received(用于 POST/PUT)和 finish 方法来发出您的请求。一旦您调用了 finish,处理程序将运行并调用回您的连接对象。

关于python - 如何在 Tornado 请求中执行 Tornado 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684163/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com