diff options
author | Maximilian Hils <git@maximilianhils.com> | 2015-02-27 15:24:27 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2015-02-27 15:24:27 +0100 |
commit | e1b6cf940146ca91c6f583a3333b4b50b72875bb (patch) | |
tree | 80cedc8e9e15881bc1662ae04e9bb3a488a1646e /examples/stream_modify.py | |
parent | 8d975e80ffbbf2af5f1d097a21dbb33e17acc6a1 (diff) | |
download | mitmproxy-e1b6cf940146ca91c6f583a3333b4b50b72875bb.tar.gz mitmproxy-e1b6cf940146ca91c6f583a3333b4b50b72875bb.tar.bz2 mitmproxy-e1b6cf940146ca91c6f583a3333b4b50b72875bb.zip |
fix #319
Diffstat (limited to 'examples/stream_modify.py')
-rw-r--r-- | examples/stream_modify.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/examples/stream_modify.py b/examples/stream_modify.py index a28d95c7..56d26e6d 100644 --- a/examples/stream_modify.py +++ b/examples/stream_modify.py @@ -1,10 +1,13 @@ """ -This inline script won't work with --stream SIZE command line option. - -That's because flow.response.stream will be overwritten to True if the -command line option exists. +This inline script modifies a streamed response. +If you do not need streaming, see the modify_response_body example. +Be aware that content replacement isn't trivial: + - If the transfer encoding isn't chunked, you cannot simply change the content length. + - If you want to replace all occurences of "foobar", make sure to catch the cases + where one chunk ends with [...]foo" and the next starts with "bar[...]. """ + def modify(chunks): """ chunks is a generator that can be used to iterate over all chunks. @@ -12,8 +15,8 @@ def modify(chunks): For example, in the case of chunked transfer encoding: ("3\r\n","foo","\r\n") """ for prefix, content, suffix in chunks: - yield prefix, content.replace("foo","bar"), suffix + yield prefix, content.replace("foo", "bar"), suffix + -def responseheaders(ctx, flow): - flow.response.stream = modify - flow.response.stream_large_bodies = 1024 # = 1KB +def responseheaders(context, flow): + flow.response.stream = modify
\ No newline at end of file |