diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2018-04-28 15:43:01 +0200 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2018-05-04 15:59:50 +0200 |
commit | ce888f5b5eb96abd5d575f272f11087bef4cd068 (patch) | |
tree | 3651386b413baa523f4b5b9446ffbf8b1b1fda4e /crocoite/browser.py | |
parent | cd51a009add3f2f5f8bba89ae4dc663e829a575c (diff) | |
download | crocoite-ce888f5b5eb96abd5d575f272f11087bef4cd068.tar.gz crocoite-ce888f5b5eb96abd5d575f272f11087bef4cd068.tar.bz2 crocoite-ce888f5b5eb96abd5d575f272f11087bef4cd068.zip |
Fetch request POST body
If there is any and it was not included in the response already.
Diffstat (limited to 'crocoite/browser.py')
-rw-r--r-- | crocoite/browser.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/crocoite/browser.py b/crocoite/browser.py index 0840374..efe739a 100644 --- a/crocoite/browser.py +++ b/crocoite/browser.py @@ -82,7 +82,21 @@ class Item: rawBody = rawBody.encode ('utf8') return rawBody, base64Encoded except (pychrome.exceptions.CallMethodException, pychrome.exceptions.TimeoutException): - return None, False + raise ValueError ('Cannot fetch response body') + + @property + def requestBody (self): + """ Get request/POST body """ + req = self.request + postData = req.get ('postData') + if postData: + return postData.encode ('utf8'), False + elif req.get ('hasPostData', False): + try: + return b64decode (self.tab.Network.getRequestPostData (requestId=self.id, _timeout=60)['postData']), True + except (pychrome.exceptions.CallMethodException, pychrome.exceptions.TimeoutException): + raise ValueError ('Cannot fetch request body') + return None, False def setRequest (self, req): self.chromeRequest = req |