当前位置: 首页>>代码示例>>Python>>正文


Python Request.prepare_auth方法代码示例

本文整理汇总了Python中requests.Request.prepare_auth方法的典型用法代码示例。如果您正苦于以下问题:Python Request.prepare_auth方法的具体用法?Python Request.prepare_auth怎么用?Python Request.prepare_auth使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在requests.Request的用法示例。


在下文中一共展示了Request.prepare_auth方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: DAVLoader

# 需要导入模块: from requests import Request [as 别名]
# 或者: from requests.Request import prepare_auth [as 别名]
class DAVLoader(object):

    def __init__(self, url, user, password):
        self.__url = url
        self.__user = user
        self.__password = password
        self.__s = Session()

        self.__req = Request('HEAD', url=self.__url).prepare()

        if self.__user is not None:
            self.__req.prepare_auth(auth=(self.__user, self.__password))

        if self.__s.send(self.__req).status_code != 200:
            raise requests.exceptions.HTTPError()

    def __request(self, method, data, path, match_codes):
        r = self.__req
        r.prepare_method(method)
        r.prepare_body(data=data, files=None)
        r.prepare_url(url=self.__url+path, params=None)
        return self.__s.send(r).status_code in match_codes

    def __retrieve(self, method, data, path, match_codes):
        r = self.__req
        r.prepare_method(method)
        r.prepare_body(data=data, files=None)
        r.prepare_url(url=self.__url+path, params=None)
        resp = self.__s.send(r)
        if resp.status_code in match_codes:
            return resp.content
        return False

    def upload(self, path, data):
        return self.__request('PUT', data, path, [201])

    def mkdir(self, path):
        if self.__request('HEAD', None, path, [200]):
            return True
        return self.__request('MKCOL', None, path, [201])

    def delete(self, path):
        return self.__request('DELETE', None, path, [201, 202, 204])

    def download(self, path):
        return self.__retrieve('GET', None, path, [200])

    def list(self, path):
        data = '<?xml version="1.0"?><a:propfind xmlns:a="DAV:"><a:allprop/></a:propfind>'
        xml = self.__retrieve('PROPFIND', data, path, [200, 207])
        parser = etree.XMLParser(remove_blank_text=True)
        tree = xmlutils.clear_xml_comments(xmlutils.clear_xml_namespaces(etree.XML(xml, parser)))
        files = []
        dirs = []
        for response in tree.findall('response'):
            href = response.find('href')
            if href is not None:
                dict = {}
                dict['path'] = href.text
                try:
                    props = response.find('propstat').find('prop')

                    lastmod = props.find('getlastmodified')
                    if lastmod is not None:
                        dict['lastmod'] = lastmod.text

                    contentlength = props.find('getcontentlength')
                    if contentlength is not None:
                        dict['size'] = contentlength.text

                    contenttype = props.find('getcontenttype')
                    if contenttype is not None:
                        dict['type'] = contenttype.text

                    if props.find('resourcetype').find('collection') is not None:
                        dirs.append(dict)
                    else:
                        files.append(dict)

                except AttributeError:
                    pass

        return dirs, files
开发者ID:webvalley2013,项目名称:The-OMERO-Group,代码行数:85,代码来源:davloader.py


注:本文中的requests.Request.prepare_auth方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。