Better handling of content types in form and json methods (Fixes #24)

This commit is contained in:
Miguel Grinberg
2021-08-02 15:39:32 +01:00
parent 0641466faa
commit da32f23e35

View File

@@ -267,20 +267,23 @@ class Request():
@property @property
def json(self): def json(self):
if self.content_type != 'application/json':
return None
if self._json is None: if self._json is None:
if self.content_type is None:
return None
mime_type = self.content_type.split(';')[0]
if mime_type != 'application/json':
return None
self._json = json.loads(self.body.decode()) self._json = json.loads(self.body.decode())
return self._json return self._json
@property @property
def form(self): def form(self):
if self._form is None:
if self.content_type is None: if self.content_type is None:
return None return None
mime_type = self.content_type.split(';')[0] mime_type = self.content_type.split(';')[0]
if mime_type != 'application/x-www-form-urlencoded': if mime_type != 'application/x-www-form-urlencoded':
return None return None
if self._form is None:
self._form = self._parse_urlencoded(self.body.decode()) self._form = self._parse_urlencoded(self.body.decode())
return self._form return self._form