python调用接口的4种方式代码实例


Posted in Python onNovember 19, 2019

这篇文章主要介绍了python调用接口的4种方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

python中调用API的几种方式:

  • - urllib2
  • - httplib2
  • - pycurl
  • - requests

1.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这种方式代码最简洁,最清晰,建议采用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python脚本爬取字体文件的实现方法
Apr 29 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
python中update的基本使用方法详解
Jul 17 Python
在django view中给form传入参数的例子
Jul 19 Python
Python面向对象之Web静态服务器
Sep 03 Python
python基于socket函数实现端口扫描
May 28 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 Python
jupyter 添加不同内核的操作
Feb 06 Python
Python Django2.0集成Celery4.1教程
Nov 19 #Python
通过celery异步处理一个查询任务的完整代码
Nov 19 #Python
Django 自动生成api接口文档教程
Nov 19 #Python
wxpython实现按钮切换界面的方法
Nov 19 #Python
Python性能分析工具Profile使用实例
Nov 19 #Python
使用apiDoc实现python接口文档编写
Nov 19 #Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 #Python
You might like
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
js select常用操作控制代码
2010/03/16 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
Javascript浅谈之this
2013/12/17 Javascript
使用js如何实现全选与全不选
2013/12/30 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
极简的Python入门指引
2015/04/01 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Python正则表达式知识汇总
2017/09/22 Python
Python退火算法在高次方程的应用
2018/07/26 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
高级销售求职信
2014/02/21 职场文书
《花木兰》教学反思
2014/04/09 职场文书