docs: def clean_post_data(self):
          """Only clean the post-data and return self. 
          
          Including form-data / bytes-data / json-data."""
          data = self.request.get('data')
          if not (data and self.request['method'] == 'post'):
              return self
          # case of total_data
          new_request = deepcopy(self.request)
          new_request.pop('data')
          self._add_task('total_data', data, new_request)
  
          # case of form_data
          if isinstance(data, dict):
              for key in data:
                  new_request = deepcopy(self.request)
                  new_form = deepcopy(data)
                  new_form.pop(key)
                  new_request['data'] = new_form
                  self._add_task('form_data', key, new_request)
              return self
  
          # case of json_data
          try:
              json_data = json.loads(data.decode(self.encoding))
              for key in json_data:
                  new_request = deepcopy(self.request)
                  new_json = deepcopy(json_data)
                  new_json.pop(key)
                  new_request['data'] = json.dumps(new_json).encode(self.encoding)
                  self._add_task('json_data', key, new_request)
              self.has_json_data = True
              return self
          except JSONDecodeError:
              return self