@@ -24,40 +24,45 @@ def __init__(self, get_response):
24
24
url = __read_settings__ ("url" ), rules = __read_settings__ ("rules" )
25
25
)
26
26
27
- def prepare_request (self , request , response ):
27
+ def prepare_request_body (self , request , response = None ):
28
28
RE_PATTERN = r'(?<=; filename=")(.*?)"\\r\\nContent-Type: (.*?)\\r\\n(.*?)((-+)([a-zA-Z0-9_.-]+)\\r\\nContent-Disposition:)' # noqa
29
29
RE_REPLACE_TO = r'\1"\\r\\nContent-Type: \2\\r\\n\\r\\n<file-data>\\r\\n\4'
30
30
request .encoding = "utf-8"
31
31
is_multipart = request .content_type == "multipart/form-data"
32
32
33
- try :
34
- if is_multipart :
35
- request ._rsf_body = (
36
- re .sub (
37
- pattern = RE_PATTERN ,
38
- repl = RE_REPLACE_TO ,
39
- string = "%r" % request .body ,
33
+ if response is None :
34
+ try :
35
+ if is_multipart :
36
+ body = (
37
+ re .sub (
38
+ pattern = RE_PATTERN ,
39
+ repl = RE_REPLACE_TO ,
40
+ string = "%r" % request .body ,
41
+ )
42
+ .encode ()
43
+ .decode ("unicode_escape" )
40
44
)
41
- .encode ()
42
- .decode ("unicode_escape" )
43
- )
44
- else :
45
- request ._rsf_body = request .body .decode (request .encoding )
46
- except RawPostDataException :
45
+ else :
46
+ body = request .body .decode (request .encoding )
47
+ except RawPostDataException :
48
+ body = None
49
+ else :
47
50
try :
48
- request . _rsf_body = str (response .renderer_context ["request" ].data )
51
+ body = str (response .renderer_context ["request" ].data )
49
52
except AttributeError :
50
- request . _rsf_body = request .readlines ()
53
+ body = request .readlines ()
51
54
52
- return request
55
+ return body
53
56
54
57
def __call__ (self , request ):
55
58
start_time = time .time ()
59
+ request_body = self .prepare_request_body (request )
56
60
response = self .get_response (request )
57
61
interval = str ((time .time () - start_time ) * 1000 )
58
62
method = request .method
59
-
60
- _request = self .prepare_request (request , response )
63
+
64
+ if request_body is None :
65
+ request_body = self .prepare_request_body (request , response )
61
66
62
67
HttpMessage .send (
63
68
self .logger ,
@@ -66,7 +71,7 @@ def __call__(self, request):
66
71
url = str (request .build_absolute_uri ()),
67
72
headers = request .headers ,
68
73
params = request .POST if method == "POST" else request .GET ,
69
- body = _request . _rsf_body ,
74
+ body = request_body ,
70
75
),
71
76
response = HttpResponseImpl (
72
77
status = response .status_code ,
0 commit comments