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

yipeiwu_com6年前Python基础

这篇文章主要介绍了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基于mysql实现的简单队列以及跨进程锁实例详解

通常在我们进行多进程应用开发的过程中,不可避免的会遇到多个进程访问同一个资源(临界资源)的状况,这时候必须通过加一个全局性的锁,来实现资源的同步访问(即:同一时间里只能有一个进程访问资源...

pyQT5 实现窗体之间传值的示例

pyQT5 实现窗体之间传值的示例

准备 一个MainWindow和一个WidgetForm,总代码如下 # -*- coding: utf-8 -*- from PyQt5 import QtWidgets fr...

Python中optparse模块使用浅析

Python中optparse模块使用浅析

最近遇到一个问题,是指定参数来运行某个特定的进程,这很类似Linux中一些命令的参数了,比如ls -a,为什么加上-a选项会响应。optparse模块实现的也是类似的功能,它是为脚本传递...

基于python全局设置id 自动化测试元素定位过程解析

背景: 在自动化化测试过程中,不方便准确获取页面的元素,或者在重构过程中方法修改造成元素层级改变,因此通过设置id准备定位。 一、python准备工作: 功能:用自动化的方式进行批量处理...

python 实现Flask中返回图片流给前端展示

场景需求:需要在Flask服务器的本地找一张图片返回给前端展示出来。 问题疑点:通常前端的<img>标签只会接受url的形式来展示图片,没试过在返回服务器本地的一张图片给前端...