gpt4 book ai didi

python - 如何在 Tornado 中删除请求?

转载 作者:行者123 更新时间:2023-11-28 21:40:44 29 4
gpt4 key购买 nike

为了测试我的客户端,我想让我的客户端发送的一些HTTP请求没有得到任何响应。

例如,我希望每个请求都应该有cookie topsession,如果没有,则不响应。

class EchoHandler(tornado.web.RequestHandler):
def get(self):
if not self.get_cookie("topsession"):
###TODO
else:
self.write("0")

最佳答案

asynchronous 装饰你的方法,永远不要调用finish:

class EchoHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
def get(self):
if not self.get_cookie("topsession"):
pass
else:
self.finish("0")

作为docs for asynchronous say :

If this decorator is given, the response is not finished when the method returns. It is up to the request handler to call self.finish() to finish the HTTP request.

因此,如果您只是简单地返回而不调用finish,客户端将永远等待(或直到其客户端套接字超时)没有收到响应的响应。但是,如果这样做,则必须在 if 语句的另一个分支中调用 finish

另一方面,如果“无响应”意味着错误,您​​可以改为:

class EchoHandler(tornado.web.RequestHandler):
def get(self):
if not self.get_cookie("topsession"):
raise tornado.web.HTTPError(401) # Unauthorized.
else:
self.write("0")

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

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