From 44ac64aa7235362acbb96e0f12aa27534580e575 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Wed, 18 May 2016 18:46:42 -0700 Subject: add MultiDict This commit introduces MultiDict, a multi-dictionary similar to ODict, but with improved semantics (as in the Headers class). MultiDict fixes a few issues that were present in the Request/Response API. In particular, `request.cookies["foo"] = "bar"` has previously been a no-op, as the cookies property returned a mutable _copy_ of the cookies. --- examples/modify_form.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'examples/modify_form.py') diff --git a/examples/modify_form.py b/examples/modify_form.py index 86188781..c4edb2cd 100644 --- a/examples/modify_form.py +++ b/examples/modify_form.py @@ -1,5 +1,8 @@ def request(context, flow): - form = flow.request.urlencoded_form - if form is not None: - form["mitmproxy"] = ["rocks"] - flow.request.urlencoded_form = form + if flow.request.urlencoded_form is not None: + flow.request.urlencoded_form["mitmproxy"] = "rocks" + else: + # This sets the proper content type and overrides the body. + flow.request.urlencoded_form = [ + ("foo", "bar") + ] -- cgit v1.2.3 From 6f8db2d7eb32684a8328e0ae8bdd73eceb861707 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Wed, 18 May 2016 22:50:19 -0700 Subject: improve MultiDict, add ImmutableMultiDict, adjust response.cookies --- examples/modify_form.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'examples/modify_form.py') diff --git a/examples/modify_form.py b/examples/modify_form.py index c4edb2cd..3fe0cf96 100644 --- a/examples/modify_form.py +++ b/examples/modify_form.py @@ -1,5 +1,5 @@ def request(context, flow): - if flow.request.urlencoded_form is not None: + if flow.request.urlencoded_form: flow.request.urlencoded_form["mitmproxy"] = "rocks" else: # This sets the proper content type and overrides the body. -- cgit v1.2.3