Hello,
I have added ticket 311 requesting this enhancement with attached patches
for transport/http.py and transport/options.py
Requesting compression can be turned off and on with the "gzip" option (a
bool)
The gzip decompression code works always. The reasoning behind this is:
- Some network providers may compress the data in HTTP responses in order
to decrease network traffic, expecting all clients to be ready to decompress
data
Best regards
Daniel
On Sat, Apr 3, 2010 at 21:07, Daniel Rodriguez <danjrod(a)gmail.com> wrote:
A "break" at the end of the "if" statement will
not hurt and avoid checking
unnecessary headers.
Best regards
On Sat, Apr 3, 2010 at 02:14, Daniel Rodriguez <danjrod(a)gmail.com> wrote:
> Hi Jeff et al,
>
> If I am not wrong (I may have missed a configuration option), suds is not
> using or requesting gzip compression.
>
> I have added a few lines and tested at least requesting and accepting gzip
> compression. My changes have been trivial and this could be possibly added
> as an option to suds.
>
> The changes I have made (against 3.9):
>
> *File*: suds/transport/http.py:
> *
> *
> *Extra imports*:
>
> import gzip
> import StringIO
>
> *Class*: HttpTransport
> *Method*: send
>
> *Added:*
>
> After:
>
> - headers = request.headers
>
> added the following line
>
> - headers.update([('Accept-Encoding', 'gzip')])
>
> *Changed:*
>
> - result = Reply(200, fp.headers.dict, fp.read())
>
> to
>
> - replydata = fp.read()
> - for header in fp.headers.dict.keys():
> - if header.lower() == 'content-encoding' and
> fp.headers.dict[header] == 'gzip':
> - replydatacompressedstream = StringIO.StringIO(replydata)
> - gzipper = gzip.GzipFile(fileobj=replydatacompressedstream)
> - replydata = gzipper.read()
> - result = Reply(200, fp.headers.dict, replydata)
>
> Best regards
>
> Daniel
>