Python調用API介面的幾種方式

來源:互聯網
上載者:User

標籤:python api

相信做過自動化營運的同學都用過API介面來完成某些動作。API是一套成熟系統所必需的介面,可以被其他系統或指令碼來調用,這也是自動化營運的必修課。


本文主要介紹python中調用API的幾種方式,下面是python中會用到的庫。

- urllib2

- httplib2

- pycurl

- requests 


  1. urllib2

import urllib2, urllibgithub_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 handleropener = urllib2.build_opener(auth) # create an opener with the authentication handlerurllib2.install_opener(opener) # install the opener... request = urllib2.Request(github_url, urllib.urlencode({‘name‘:‘Test repo‘, ‘description‘: ‘Some test repository‘})) # Manual encoding requiredhandler = urllib2.urlopen(request)print handler.read()

2. httplib2

import urllib, httplib2github_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, jsongithub_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, jsongithub_url = "data = json.dumps({‘name‘:‘test‘, ‘description‘:‘some test repo‘}) r = requests.post(github_url, data, auth=(‘user‘, ‘*****‘))print r.json

以上幾種方式都可以調用API來執行動作,但requests這種方式代碼最簡潔,最清晰,建議採用。

本文出自 “Linux和網路” 部落格,轉載請與作者聯絡!

Python調用API介面的幾種方式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.