zoukankan      html  css  js  c++  java
  • Python调用API接口的几种方式 数据库 脚本

    Python调用API接口的几种方式
    
    2018-01-08  gaoeb97nd...  转自 one_day_day...
    修改
    微信分享:
    相信做过自动化运维的同学都用过API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。
    
    
    
    本文主要介绍python中调用API的几种方式,下面是python中会用到的库。
    
    - urllib2
    
    - httplib2
    
    - pycurl
    
    - requests 
    
    urllib2
    
    import urllib2, urllib
    github_url = 'https://api.github.com/user/repos'
    password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
    password_manager.add_password(None, github_url, 'user', '***')
    auth = urllib2.HTTPBasicAuthHandler(password_manager) # create an authentication handler
    opener = urllib2.build_opener(auth) # create an opener with the authentication handler
    urllib2.install_opener(opener) # install the opener... 
    request = urllib2.Request(github_url, urllib.urlencode({'name':'Test repo', 'description': 'Some test repository'})) # Manual encoding required
    handler = urllib2.urlopen(request)
    print handler.read()
    2. httplib2
    
    import urllib, httplib2
    github_url = '
    h = httplib2.Http(".cache")
    h.add_credentials("user", "******", "
    data = urllib.urlencode({"name":"test"})
    resp, content = h.request(github_url, "POST", data)
    print content
    3. pycurl
    
    import pycurl, json
    github_url = "
    user_pwd = "user:*****"
    data = json.dumps({"name": "test_repo", "description": "Some test repo"})
    c = pycurl.Curl()
    c.setopt(pycurl.URL, github_url)
    c.setopt(pycurl.USERPWD, user_pwd)
    c.setopt(pycurl.POST, 1)
    c.setopt(pycurl.POSTFIELDS, data)
    c.perform()
    4. requests
    
    import requests, json
    github_url = "
    data = json.dumps({'name':'test', 'description':'some test repo'}) 
    r = requests.post(github_url, data, auth=('user', '*****'))
    print r.json
    以上几种方式都可以调用API来执行动作,但requests这种方式代码最简洁,最清晰,建议采用。
    
    本文出自 “Linux和网络” 博客,转载请与作者联系!
    
  • 相关阅读:
    单元测试——破除依赖
    单元测试——基础概念
    2015年9月书单推荐
    菜鸟vimer成长记——第4.2章、编程插件
    克服弱点,愈发完美-自我篇——《人性的弱点》读后感
    菜鸟vimer成长记——第4.0章、Vim插件管理利器-Vundle
    菜鸟vimer成长记——第3章、文件
    阿里IPO法律咨询费达1580万美元 为Facebook六倍
    新移民漫画家 以幻想构筑奇妙世界
    请教Amazon FBA里面Label Service, Stickerless, Commingled Inventory是什么意思?
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8245489.html
Copyright © 2011-2022 走看看