summaryrefslogtreecommitdiff
path: root/crocoite/browser.py
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2018-04-28 15:43:01 +0200
committerLars-Dominik Braun <lars@6xq.net>2018-05-04 15:59:50 +0200
commitce888f5b5eb96abd5d575f272f11087bef4cd068 (patch)
tree3651386b413baa523f4b5b9446ffbf8b1b1fda4e /crocoite/browser.py
parentcd51a009add3f2f5f8bba89ae4dc663e829a575c (diff)
downloadcrocoite-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.py16
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