我的self.error()是否在Google App Engine中被覆盖?

时间:2012-08-16 14:51:24

标签: python google-app-engine http

在我的Google App Engine应用程序中,我有一个处理程序,其中包含PUT请求的方法:

def postMethod(self, arg):
    response = do_backend_work(arg)
    if response.field is None:
        self.error(502)
        self.response.out.write(json.dumps(
                {'message': "you've been a bad boy!"}))
    else:
        <deal with well-formatted requests here>
         .
         .
         .

但是,当我收到response.fieldNone的请求时,请求以200返回。当我发现此错误时,我在{{1}之前插入raise Exception(str(self.response))阻止作为一个完整性检查,并在日志中找到它:

else

我是否缺少关于App Engine如何处理请求的内容?

1 个答案:

答案 0 :(得分:0)

经过一番生根,我发现了问题。在我的do_backend_work函数中,有一个流氓打印语句劫持了输出流!故事的寓意是:不要在Google App Engine后端写入stdout。我正在为了后代的利益而发布这个问题。