最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python调用api接口有几种方式

    正文概述    2020-03-12   241

    python调用api接口有几种方式

    python调用api的几种方式:

    1、urllib2

    def run(self):
        username, password = getword()
        try:
            print "-"*12
            print "User:",username,"Password:",password
            req = urllib2.Request(sys.argv[1])
            passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
            passman.add_password(None, sys.argv[1], username, password)
            authhandler = urllib2.HTTPBasicAuthHandler(passman)
            opener = urllib2.build_opener(authhandler)
            fd = opener.open(req)
            print "\t\n\nUsername:",username,"Password:",password,"----- Login successful!!!\n\n"           
            print "Retrieved", fd.geturl()
            info = fd.info()
            for key, value in info.items():
                print "%s = %s" % (key, value)
            sys.exit(2)
         except (urllib2.HTTPError, httplib.BadStatusLine,socket.error), msg: 
            print "An error occurred:", msg
            pass

    相关推荐:《Python教程》

    2、urllib

    def dorequest(url, data = "", method = 'GET'):
        try: 
            if method == 'GET':
                response = urllib.request.urlopen(url, timeout=10).read()
            else:
                # use PUT/DELETE/POST, data should be encoded in ascii/bytes 
                request = urllib.request.Request(url, data = data.encode('ascii'), method = method)
                response = urllib.request.urlopen(request, timeout=10).read()
        # etcd may return json result with response http error code
        # http error code will raise exception in urlopen
        # catch the HTTPError and get the json result
        except urllib.error.HTTPError as e:
            # e.fp must be read() in this except block.
            # the e will be deleted and e.fp will be closed after this block
            response = e.fp.read()
        # response is encoded in bytes. 
        # recoded in utf-8 and loaded in json
        result = json.loads(str(response, encoding='utf-8'))
        return result
    # client to use etcd
    # not all APIs are implemented below. just implement what we want

    3、pycurl

    def put (url, data, headers={}):
        """Make a PUT request to the url, using data in the message body,
        with the additional headers, if any"""
        reply = -1 # default, non-http response
        curl = pycurl.Curl()
        curl.setopt(pycurl.URL, url)
        if len(headers) > 0:
            curl.setopt(pycurl.HTTPHEADER, [k+': '+v for k,v in headers.items()])
        curl.setopt(pycurl.PUT, 1)
        curl.setopt(pycurl.INFILESIZE, len(data))
        databuffer = StringIO(data)
        curl.setopt(pycurl.READFUNCTION, databuffer.read)
        try:
            curl.perform()
            reply = curl.getinfo(pycurl.HTTP_CODE)
        except Exception:
            pass
        curl.close()
        return reply

    4、requests

    import requests
    >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
    >>> r.status_code
    200
    >>> r.headers['content-type']
    'application/json; charset=utf8'
    >>> r.encoding
    'utf-8'
    >>> r.text
    u'{"type":"User"...'
    >>> r.json()
    {u'private_gists': 419, u'total_private_repos': 77, ...}

    起源地下载网 » python调用api接口有几种方式

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元