diff --git a/escherauth/escherauth.py b/escherauth/escherauth.py index f1a17e7..cf38e6f 100644 --- a/escherauth/escherauth.py +++ b/escherauth/escherauth.py @@ -88,7 +88,10 @@ def body(self): if self.is_presigned_url: return 'UNSIGNED-PAYLOAD' if self.type is requests.models.PreparedRequest: - return self.request.body.decode('utf-8') or None + if isinstance(self.request.body, bytes): + return self.request.body.decode('utf-8') + else: + return self.request.body or '' if self.type is dict: return self.request.get('body') @@ -369,7 +372,7 @@ def canonicalize(self, req, headers_to_sign): self.canonicalize_headers(req.headers(), headers_to_sign), '', self.prepare_headers_to_sign(headers_to_sign), - self.algo(req.body().encode('utf-8')).hexdigest() + self.algo((req.body() or '').encode('utf-8')).hexdigest() ]) def canonicalize_path(self, path):