我在Heroku Cedar dyno上运行Flask / Gunicorn Python应用程序。该应用返回JSON responses
给客户(实际上是个API server
)。
客户端有时会收到0字节的响应。但是,不是我退还他们。这是我的应用程序日志的一个片段:
3月14日13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app [web.1] [2013-03-14 13:13:31 UTC] 10.104.41.136 apisrv-api_get_credits_balance():session_token = [MASKED ]
上面的第一行是我开始处理请求的过程。
3月14日13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app [web.1] [2013-03-14 13:13:31 UTC] 10.104.41.136 apisrv 1252148511 api_get_credits_balance():返回[{ credits_balance':0}]
第二行是我返回一个值(到Flask -这是Flask的“ Response”对象)。
3月14日13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app [web.1]“ 10.104.41.136--[14 / Mar / 2013:13:13:31]” POST / get_credits_balance?session_token =屏蔽HTTP / 1.1“ 200 22”-“” Appcelerator Titanium / 3.0.0.GA(iPhone / 6.1.2; iPhone OS; en_US;)“
第三行是Gnicorn,其中您可以看到Gunicorn的状态为200,HTTP正文为22字节200 22
。
但是,客户端获得了0个字节。这是Heroku路由器日志:
3月14日13:13:30 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 heroku [router] at = info method = POST path = / get_credits_balance?session_token = MASKED host = matchspot-apisrv.herokuapp.com fwd =“ 66.87。 116.128“ dyno = web.1队列= 0等待= 0ms连接= 1ms服务= 19ms状态= 200字节= 0
为什么Gunicorn返回22个字节,但是Heroku看到0,并确实将0个字节传回给客户端?这是Heroku的错误吗?