Content-Length está siendo despojado

Estoy usando webpy 0.34, python 2.6.6. También estoy usando mimerender. Estoy tratando de incluir la longitud del contenido en mi respuesta http, pero por alguna razón se está eliminando el encabezado. Digo eliminado porque puedo crear encabezados personalizados muy bien, y puedo ver esos encabezados en el cliente. Pero cuando trato de establecer la longitud del contenido, el encabezado nunca llega al cliente. He intentado incluir el encabezado en el objeto web.created (como se muestra) y también he intentado usar

web.header('Content-Length', len(data)) 

¿Qué estoy haciendo mal y / o no entiendo sobre cómo funciona este código?

 render_json = lambda **args: json.JSONEncoder().encode(args) class MyHandler: @mimerender( default = 'json', json = render_json, ) def POST(self): data = "abcd" raise web.created(data, headers={'Content-Length': len(data)}) 

Si los datos se envían como fragmentados ( Transfer-Encoding: chunked ), el encabezado Content-Length debe omitirse, según RFC 2616 :

  1. [recorte]

  2. Si un campo de encabezado de encoding de transferencia (sección 14.41) está presente y tiene un valor distinto de “identidad”, entonces la longitud de transferencia se define mediante el uso de la encoding de transferencia “fragmentada” (sección 3.6), a menos que el mensaje finalice cerrando la conexión.

  3. Si hay un campo de encabezado de longitud de contenido (sección 14.13), su valor decimal en OCTET representa tanto la longitud de la entidad como la longitud de la transferencia. El campo de encabezado de longitud de contenido NO DEBE enviarse si estas dos longitudes son diferentes (es decir, si hay un campo de encabezado de encoding de transferencia). Si se recibe un mensaje con un campo de encabezado de encoding de transferencia y un campo de encabezado de longitud de contenido, este último DEBE ignorarse.