Python調(diào)用REST API接口的幾種方式匯總
相信做過自動(dòng)化運(yùn)維的同學(xué)都用過REST API接口來完成某些動(dòng)作。API是一套成熟系統(tǒng)所必需的接口,可以被其他系統(tǒng)或腳本來調(diào)用,這也是自動(dòng)化運(yùn)維的必修課。
本文主要介紹python中調(diào)用REST API的幾種方式,下面是python中會(huì)用到的庫。
- - urllib2
- - httplib2
- - pycurl
- - requests
urllib2
- Sample1
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()
- Sample2
import urllib2 url = 'http://ems.vip.ebay.com/removeSIforcloud.cgi?ip=' + ip req = urllib2.Request(url) req.add_header('IAF',abc.token_authiaas) try: resp = urllib2.urlopen(req) except urllib2.HTTPError, error: print "Cannot remove service instance!", error sys.exit(1) response = resp.read() print response
- Sample3
import urllib2, urllib, base64 url = "https://reparo.stratus.ebay.com/reparo/bootstrap/registerasset/" + rackid + "/" + asset data = urllib.urlencode({ 'reservedResource':'RR-Hadoop', 'resourceCapability':'Production', 'movetoironic':'False', 'output':'json' }) print "Bootstrap Asset jobs starting .............." base64string = base64.encodestring('%s:%s' % (user, passwd)).replace('\n', '') request = urllib2.Request(url, data, headers={"Authorization" : "Basic %s" % base64string}) response = urllib2.urlopen(request).read() response_json = json.loads(response) response_status = response_json['status'] status_code = response_status['statusCode'] status = response_status['status'] message = response_status['message'] print status_code , status, message
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
以上幾種方式都可以調(diào)用API來執(zhí)行動(dòng)作,但requests這種方式代碼最簡潔,最清晰,建議采用。
以上就是Python調(diào)用REST API接口的幾種方式匯總的詳細(xì)內(nèi)容,更多關(guān)于Python調(diào)用REST API接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python 調(diào)用API接口 獲取和解析 Json數(shù)據(jù)
- python調(diào)用API接口實(shí)現(xiàn)登陸短信驗(yàn)證
- Python中Flask-RESTful編寫API接口(小白入門)
- Python多線程爬取豆瓣影評(píng)API接口
- python 調(diào)用有道api接口的方法
- 對(duì)Python實(shí)現(xiàn)簡單的API接口實(shí)例講解
- Python利用Django如何寫restful api接口詳解
- python+requests+unittest API接口測試實(shí)例(詳解)
- python基于爬蟲+django,打造個(gè)性化API接口
相關(guān)文章
python下對(duì)hsv顏色空間進(jìn)行量化操作
這篇文章主要介紹了python下對(duì)hsv顏色空間進(jìn)行量化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06python圖片指定區(qū)域替換img.paste函數(shù)的使用
這篇文章主要介紹了python圖片指定區(qū)域替換img.paste函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Python采集熱搜數(shù)據(jù)實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Python采集熱搜數(shù)據(jù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Python+Tkinter制作股票數(shù)據(jù)抓取小程序
這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)一個(gè)Tkinter?GUI程序,完成無代碼股票抓取!文中的示例代碼講解詳細(xì),快跟小編一起動(dòng)手試一試吧2022-08-08用Python實(shí)現(xiàn)一個(gè)簡單的多線程TCP服務(wù)器的教程
這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)簡單的多線程TCP服務(wù)器的教程,示例的運(yùn)行環(huán)境為Windows操作系統(tǒng),需要的朋友可以參考下2015-05-05OpenCV實(shí)現(xiàn)手勢(shì)虛擬拖拽的使用示例(附demo)
本文主要介紹了OpenCV實(shí)現(xiàn)手勢(shì)虛擬拖拽的使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11kafka-python批量發(fā)送數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇kafka-python批量發(fā)送數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12python利用opencv如何實(shí)現(xiàn)答題卡自動(dòng)判卷
由于工作需要,最近在研究關(guān)于如何通過程序識(shí)別答題卡的客觀題的答案,所以下面這篇文章主要介紹了python利用opencv如何實(shí)現(xiàn)答題卡自動(dòng)判卷的相關(guān)資料,需要的朋友可以參考下2021-08-08Pygame庫200行代碼實(shí)現(xiàn)簡易飛機(jī)大戰(zhàn)
本文主要介紹了Pygame庫200行代碼實(shí)現(xiàn)簡易飛機(jī)大戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12