python rest api_Python调用REST API接口的几种方式汇总

相信做过自动化运维的同学都用过REST API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。

本文主要介绍python中调用REST API的几种方式,下面是python中会用到的库。

- 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

以上几种方式都可以调用API来执行动作,但requests这种方式代码最简洁,最清晰,建议采用。

以上就是Python调用REST API接口的几种方式汇总的详细内容,更多关于Python调用REST API接口的资料请关注我们其它相关文章!

本文标题: Python调用REST API接口的几种方式汇总

本文地址: http://www.cppcns.com/jiaoben/python/355428.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac os 开启redis_关于Redis,学会这8点就够了

一、redis是什么redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。二…

python第八周小测验_Python语言程序设计第2周测验+练习题复盘

嘿,这里是目录! 练习网址 https://python123.io/index 测验2 单项选择题 1. 哪个选项不能正确引用turtle库进而使用setup()函数?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬…

计算机设备管理器驱动,驱动技巧:解决设备管理器中声卡驱动安装不正确的问题...

分类:声卡驱动问题:设备管理器中声卡驱动安装不正确描述:电脑没有声音,有部分朋友是因为声卡驱动没有正确安装,除了我们常见到的设备管理器出现黄色感叹号之外,另一种情况就是让一般人很难发现的问题&#…

lisp对excel其他行列写入_【极简Python 自动化办公】Python写入Excel表格

【极简Python 自动化办公】Python写入Excel表格【极简Python 自动化办公】专栏是介绍如何利用python办公,减少工作负荷。篇幅精炼,内容易懂,无论是否有编程基础,都非常适合。在上次文章中,我们学习了【用python读取exc…

全国大学生计算机应用大赛有什么好处,我校学生喜获第十一届全国大学生计算机应用能力与信息素养大赛冠军...

2021年6月,第十一届全国大学生计算机应用能力与信息素养大赛通过腾讯会议视频全程监控在线作答的形式圆满结束。本届大赛共有来自117所院校932名选手参加全国总决赛。经过校园赛选拔,考前集训,我校共选出3名40本科班同学参加了该赛项&#xf…

java8 lambda map排序_Android兼容Java 8语法特性的原理分析

本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理、Android第三方插件RetroLambda对其的支持过程、Android官方最新的dex编译器D8对其的编译支持。通过对这三个方面的跟踪分析,以Java 8的代表性特性——Lambda表达式为着眼点,将Android…

lrange是取出所有值并移除么_部落冲突:兵营容量提升,移除超级部队、英雄防御状态冷却时间...

爱生活,爱游戏,大家好,我是阿呆!部落冲突已经好长时间没更新了,这次秋天不再等待,部落冲突第二弹更新来袭,被称之为今年最赞的一次更新,感觉和我一起来看看吧!防御建筑升…

python爬取百度迁徙数据_python爬虫-动态爬取百度迁徙

#1.模拟浏览器发送请求 importrequestsimportjsonimportpandas as pd city_name[] province_name[] value[] url https://huiyan.baidu.com/migration/cityrank.jsonp?dtcountry&id0&typemove_in&date20200315&callbackjsonp_1590404076900_7186798rqrequests…

计算机系统硬盘内存主频,内存时序和频率_内存硬盘-中关村在线

内存时序和频率内存时序是描述内存条性能的一种参数,一般存储在内存条的SPD中。一般数字“A-B-C-D”分别对应的参数是“CL-tRCD-tRP-tRAS”,它们的含义依次为:CAS Latency(简称CL值)内存CAS延迟时间,它是内存的重要参数之一&#…

ubuntun系统mysql数据库同步_Canal 实现 Mysql数据库实时数据同步

简介1.1 canal介绍​ Canal是一个基于MySQL二进制日志的高性能数据同步系统。Canal广泛用于阿里巴巴集团(包括https://www.taobao.com),以提供可靠的低延迟增量数据管道,github地址:https://github.com/alibaba/canalC…

int数组初始化_Java数组

###理解数组Java的数组要求所有的元素为相同数据类型。既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有元素的类型相同就可以。一旦数组的初始化完成,数组在内存中占用的空间就被固定下来,因此数组长度不可变&#x…

pdf无法启动因计算机丢失,解决打开 PDF 文件时出现的文档损坏错误

如果您是客户或企业 IT 专业人员,可以通过设置相应的首选项在计算机上禁用标头验证。您可以在 HKCU 中为单个用户设置此首选项,或者在 HKLM 中在计算机级别为所有用户设置。您可以通过修改相同的 plist 首选项在 Mac OS 上使用相似的方法。如果 AVGenera…

各自然带代表植被_植被垂直带谱?水与热之间的较量。

随着海拔高度的上升,从山麓到山顶年平均气温逐渐降低,生长季节逐渐缩短,同时在一定海拔范围内随着降水量的增加,风速加大,辐射增强,土壤条件也发生相应的变化。在以上因素的综合作用下,植被表现…

量子计算机通用程序,量子计算机程序具有“通用X”?基于拓扑量子纠错码的量子计算机...

源远流长造句不管量子计算机的内部是由什么组成,量子计算机的快速计算都可以归结为应用于量子比特的简单指令序列,即量子计算机内部的基本信息单位。无论这台计算机是由离子链、超导体结还是硅片组成,事实证明,一次只影响一个或两…

ora00936缺失表达式怎么解决_初学者学习AE经常会遇到问题及解决方法,快进来看看吧!~~...

关于软件常见问题请一定要收藏对初学者的你绝对有用首先解决的第一个问题是:软件安装失败提示及解决方案说起原因安装失败是由AE的某些文件没有删除干净(绿化版本极易造成,不建议安装)解决方案(所有Adobe软件通用)如果安装过Adobe公司的软件需要在以下路…

matlab画出周期为2的方波图形 傅立叶级数_高等数学系列R之四:傅立叶级数及变换...

2020-03-23傅立叶级数是将周期函数表示成由多个 (或无穷多个) 不同频率的正弦函数和余弦函数的线性组合,这些不同的频率是不连续的,例如傅立叶级数:,其 sin 内的 x, 3x, 5x 是不连续的。而傅立叶积分是将傅立叶级数延伸到非周期函…

计算机基础知识第八周,计算机系统基础(一):程序的表示、转换与链接(第八周小测验)...

1.假定全局short型数组a的起始地址为0x804908c,则a[2]的地址是( )。A.0x8049092B.0x8049094C.0x8049090D.0x804908e2.假定全局数组a的声明为char *a[8],a的首地址为0x80498c0,i 在ECX中,现要将a[i]取到EAX相应宽度的寄存器中&…

c# getresponsestream返回byte[]_C++模版和C#范型求同存异录(一)sizeof(T)

sizeof(T)从C的模板代码往C#代码移植的时候发现了一个小问题。在C模板代码中 sizeof(T)是一种有效的写法,最终在会编译器展开成sizeof(int),sizeof(float)或者sizeof(myclass),然后在运行时这个代码是有效的,能够执行的。于是我们看上去就可以计算在运行…

两线怎么接三线插座图_什么是RTD热电阻?两线制和三线制RTD有什么不同?

RTD的英文全称为“Resistance Temperature Detector”,因此准确来说,它应该翻译为“电阻温度检测器”。RTD是一种特殊的电阻,其阻值会随着温度的升高而变大,随着温度的降低而减小。工业上利用它的这一特性进行温度测量&#xff0c…

计算机内存条价格,最新内存条天梯图2020 内存条全面选购指南

*文章末尾有内存条推荐。电脑内存(RAM)是程序运行的地方,当你打开一款软件、游戏时,系统会将硬盘中的必要数据复制到内存中,CPU 再从内存中获取数据,因为内存的速度比硬盘要快的多多多。唯一的遗憾是每次内存断电,其中…