Manipulando HTTP codificação em partes com django
Eu tenho um problema para lidar com codificação de transferência HTTP em partes.
Estou a usar:
apache.Plugin mod_wsgi.django.django, só é capaz de manipular requisição http com o campo header de tamanho de conteúdo, mas quando se trata de manipular TE (Transfer-Encoding), chunked ou gzip, ele retorna um resultado vazio.
Estou pensando em duas abordagens:
Fazendo algumas modificações no arquivo python django.wsgiAdicione algum arquivo python de middleware ao django, para interceptar qualquer requisição http em partes, converta-a para requisição requelar http com o campo de cabeçalho de comprimento de conteúdo e, em seguida, passe-a para o django, onde ela pode lidar com isso muito bem.Qualquer um pode ajudar com qualquer uma das duas opções acima (mais opções são bem-vindas, é claro)
Obrigado!
Esta é uma extensão da minha pergunta após o primeiro anwer de Graham:
Primeiro de tudo, obrigado pela sua resposta rápida. O cliente que está sendo usado é a Axis, que faz parte do sistema de outra empresa que se comunica com a nossa. eu tinhaWSGIChunkedRequest On
set, eu também fiz algumas modificações no meu wsgi wrapper assim:
def application(environ, start_response):
if environ.get("mod_wsgi.input_chunked") == "1":
stream = environ["wsgi.input"]
print stream
print 'type: ', type(stream)
length = 0
for byte in stream:
length+=1
#print length
environ["CONTENT_LENGTH"] = len(stream.read(length))
django_application = get_wsgi_application()
return django_application(environ, start_response)
mas me dá esses erros (extraídos do arquivo error.log do apache):
[Sat Aug 25 17:26:07 2012] [error] <mod_wsgi.Input object at 0xb6c35390>
[Sat Aug 25 17:26:07 2012] [error] type: <type 'mod_wsgi.Input'>
[Sat Aug 25 17:26:08 2012] [error] [client xxxxxxxxxxxxx] mod_wsgi (pid=27210): Exception occurred processing WSGI script '/..../wsgi.py'.
[Sat Aug 25 17:26:08 2012] [error] [client xxxxxxxxxxxxx] Traceback (most recent call last):
[Sat Aug 25 17:26:08 2012] [error] [client xxxxxxxxxxxxx] File "/..../wsgi.py", line 57, in application
[Sat Aug 25 17:26:08 2012] [error] [client xxxxxxxxxxxxx] for byte in stream:
[Sat Aug 25 17:26:08 2012] [error] [client xxxxxxxxxxxxx] IOError: request data read error
O que estou fazendo de errado?!