def _make_dav_request(self, method, path, **kwargs):
        if self._debug:
            print('DAV request: %s %s' % (method, path))
            if kwargs.get('headers'):
                print('Headers: ', kwargs.get('headers'))
        path = self._normalize_path(path)
        res = self._session.request(
            method,
            self._webdav_url + parse.quote(self._encode_string(path)),
            **kwargs
        )
        if self._debug:
            print('DAV status: %i' % res.status_code)
        if res.status_code in [200, 207]:
            return self._parse_dav_response(res)
        if res.status_code in [204, 201]:
            return True
        raise HTTPResponseError(res)