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和网络” 博客,转载请与作者联系!
    
  • 相关阅读:
    DRUPAL 关于 $user 用户权限
    Delphi中代替WebBrowser控件的第三方控件
    最新美行地图Z13升级攻略
    Drupal Form问题汇总
    美行四维图新导航地图可以升级了!!
    Redis 主从配置
    MariaDB 双主复制的配置
    MariaDB 主从复制的配置
    在CentOS下利用Python+selenium获取腾讯首页的今日话题。
    利用Simple-RTMP-Server(SRS)来进行直播
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8245489.html
Copyright © 2011-2022 走看看