0

私の 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 として返されます。このエラーをキャッチしたとき、サニティ チェックとしてブロックraise Exception(str(self.response))の直前に挿入elseし、ログでこれを見つけました。

raise Exception(str(self.response))
Exception: 502 Bad Gateway
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
Content-Length: 63

{"message": "you've been a bad boy!"}
INFO 2012-08-15 23:25:12,239 dev_appserver.py:2952] 
"PUT /url/resource HTTP/1.1" 200  -

App Engine がリクエストを処理する方法について、私が見逃していることはありますか?

4

1 に答える 1

0

いくつかのルートの後、私は問題を理解しました。私のdo_backend_work関数では、出力ストリームをハイジャックする不正な print ステートメントがありました! この話の教訓は、Google App Engine バックエンドの stdout に書き込んではいけないということです。将来の世代のために質問を投稿しています。

于 2012-08-16T14:51:24.247 に答える