web.py 返回 "Transfer-Encoding: chunked" 的处理

来源:互联网 发布:跳舞毯哪款最好 知乎 编辑:程序博客网 时间:2024/05/29 19:27

最近在写一个微信公众号的小程序。微信公众平台推荐的服务端配置是python + web.py。调试时发现web.py(实际上是wsgiserver)响应我的POST请求时,HTTP Header里面总是"Transfer-Encoding: chunked",而不返回“Content-Length”,而我的设备端程序处理是依赖于“Content-Length”。重写设备端程序太麻烦,怎样才能让它不返回"Transfer-Encoding: chunked"。查了一些文章,说是将"HTTP/1.1"改成“HTTP/1.0”。试了一下,确实不返回"Transfer-Encoding: chunked",但是Header中间仍然没有“Content-Length”,怎样才能让它返回“Content-Length”呢?找了一些例子,发现很简单,在POST返回前,设置web.header就可以了。代码如下:

-----------

            web.header('Content-Type', 'application/octet-stream')
            web.header('Content-Length', len(retMsg))
            return retMsg

-----------

测试后,一切OK。返回的HTTP Header如下,

-----------

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 58
Date: Mon, 12 Dec 2016 02:59:23 GMT
Server: localhost

-----------


0 0