Obsługa porcjowanego kodowania HTTP za pomocą django

Mam problem z obsługą kodowania transferu opartego na http.

Używam:

apache.wtyczka mod_wsgi.django.

django jest w stanie obsłużyć tylko żądanie HTTP reqular z polem nagłówka o długości zawartości, ale jeśli chodzi o obsługę TE (Transfer-Encoding), chunked lub gzip, zwraca pusty wynik.

Myślę o 2 podejściach:

Dokonanie pewnych modyfikacji w pliku python django.wsgiDodaj jakiś plik Pythona oprogramowania pośredniego do django, aby przechwycić dowolne fragmentowane żądanie http, przekonwertuj je na żądanie http z polem nagłówka treści, a następnie przekaż je do django, gdzie będzie w stanie je obsłużyć.

Każdy może pomóc w każdej z powyższych 2 opcji (oczywiście więcej opcji jest mile widziane)

Dzięki!

To jest rozszerzenie mojego pytania po pierwszym odpowiedzi Grahama:

Przede wszystkim dzięki za szybką odpowiedź. Używanym klientem jest Axis, który jest częścią systemu innej firmy komunikującego się z naszym. miałemWSGIChunkedRequest On ustawiłem również kilka modyfikacji w moim opakowaniu wsgi w następujący sposób:

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)

ale daje mi te błędy (wydobyte z pliku error.log 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

Co ja robię źle?!

questionAnswers(2)

yourAnswerToTheQuestion