当前位置: 首页 > 知识库问答 >
问题:

返回龙卷风POST请求的响应

赏高格
2023-03-14

我见过龙卷风文档和示例,其中self.write方法被广泛用于在超文本标记语言上呈现一些值,其中POST请求在处理程序中运行。但是我找不到关于如何将响应返回给客户的清晰信息。

例如,我正在从我的客户端调用Tornado服务器上的POST请求。接受post请求的代码为:

class strest(tornado.web.RequestHandler):
    def post(self):
        value = self.get_argument('key')
        cbtp = cbt.main(value)

有了这个,我可以找到cbtp的值,有了self.write(cbtp),我可以用HTML打印它。但是,相反,我想以JSON格式将这个值返回给客户机,比如{'cbtp':cbtp}我想知道如何修改我的代码,以便将这个响应发送给客户机,或者给我一些文档,在这些文档中可以流畅地解释这一点。

像这样做

res = {cbtp: cbtp}
return cbtp

抛出一个BadYieldError:生成未知对象

共有2个答案

刘成礼
2023-03-14

如果给定的块是一个字典,我们将其写为JSON,并将响应的内容类型设置为application/JSON。(如果要将JSON作为不同的内容类型发送,请在调用write()后调用set_header)。

使用它应该给你想要的东西:

self.write(json.dumps({'cbtp': cbtp}))
东门修能
2023-03-14

您只需要将输出类型设置为JSON,JSON.dump会转储您的输出。

通常,我在一个名为RESTRequestHandler的父类中有set_default_头。如果只需要一个返回JSON的请求,可以在post调用中设置头。

class strest(tornado.web.RequestHandler):
    def set_default_headers(self):
        self.set_header("Content-Type", 'application/json')

    def post(self):
        value = self.get_argument('key')
        cbtp = cbt.main(value)
        r = json.dumps({'cbtp': cbtp})
        self.write(r)
 类似资料:
  • 问题内容: 我有一个传入的对象。如何找到发出请求的客户端的 IP ?我浏览了的大多数方法和属性,似乎错过了一些东西。 问题答案: (来自RequestHandler的实例) 您可以像这样检查响应:

  • 我设法编写了一个相当愚蠢的bug,它会使我的一个请求处理程序运行一个非常慢的DB查询。 有趣的是,我注意到,即使在围攻完成很久之后,龙卷风仍然在翻腾请求(有时是90年代以后)。(评论-->我不是100%确定围攻的工作原理,但我相当肯定它关闭了连接..) 我通读了代码,似乎什么也找不到。尽管我的请求处理程序在上面的bug中异步运行,但挂起的请求数量堆积到了一个降低应用程序速度的水平,关闭连接会更好。

  • 我必须做一个帖子,但我得到错误405 在本网站->http://177.66.89.34:8079/transparencia/#我需要迭代页面顶部的2个下拉菜单的选项。 首先,我会在“escolha o exercício”旁边加上选项:然后,我会在“escolha a entidade”旁边加上选项: 用下面的代码,我在“EscolhaoExercício:”上面写了一篇文章 我希望在pars

  • 所以我想打印响应的结果,然后使用gson为模型生成数据,但响应永远不会得到返回,因为调用了onResponse。! 如果你注意到Logcat,日志。我的回答没有显示。。!?但是在使用该请求的活动的onSuccess中,它通常会显示日志,但是如果日志包含响应对象,它不会显示哪个非常奇怪,也没有任何意义。。!? Logcat公司 我尝试使用具有相同url和参数的PostMan测试请求,它通常返回jso

  • 我从这里获取信息实现了Struts2 REST API Struts2 Rest插件 Struts2中的restful插件中是否有返回自定义响应的方法。我做了所有必要的更改,如 从这个问题得到的。我仍然得到这个错误 如果我不添加上面的行,我仍然会得到相同的响应。 这是我在struts中提供的操作。xml: 这将满足所有请求,包括获取、发布、放置、更新。 在将post方法的返回类型从HttpHead

  • 我试图编写一个龙卷风请求处理程序,它生成异步HTTP请求,并在客户端从异步请求接收数据时将数据返回给客户端。不幸的是,我无法让龙卷风返回任何数据到客户端,直到它的所有异步HTTP请求都完成。 下面是我的请求处理程序的演示。 我希望对这个处理程序的GET请求最初返回文本“some opening”,然后很快为小请求返回“some chunk”,然后为大请求返回“some chunk”(可能多次),最