Python中http请求方法库汇总


Posted in Python onJanuary 06, 2016

最近在使用python做接口测试,发现python中http请求方法有许多种,今天抽点时间把相关内容整理,分享给大家,具体内容如下所示:

一、python自带库----urllib2

python自带库urllib2使用的比较多,简单使用如下:

import urllib2
response = urllib2.urlopen('http://localhost:8080/jenkins/api/json?pretty=true')
print response.read()

简单的get请求

import urllib2
import urllib
post_data = urllib.urlencode({})
response = urllib2.urlopen('http://localhost:8080/, post_data)
print response.read()
print response.getheaders()

这就是最简单的urllib2发送post例子。代码比较多

二、python自带库--httplib

httplib是一个相对底层的http请求模块,urlib就是基于httplib封装的。简单使用如下:

import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
data1 = r1.read()
conn.request("GET", "/parrot.spam")
r2 = conn.getresponse()
data2 = r2.read()
conn.close()

简单的get请求

我们再来看post请求

import httplib, urllib
params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
data = response.read()
print data
conn.close()

是不是觉得太复杂了。每次写还得再翻文档,看看第三种吧

三、第三方库--requests

发请get请求超级简单:

print requests.get('http://localhost:8080).text

就一句话,再来看看post请求

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print r.text

也很简单。

再看看如果要认证:

url = 'http://localhost:8080'
r = requests.post(url, data={}, auth=HTTPBasicAuth('admin', 'admin'))
print r.status_code
print r.headers
print r.reason

是不是比urllib2更简单多了吧,且requests自带json解析。这点非常棒

python中的http请求

import urllib
params = urllib.urlencode({key:value,key:value})
resultHtml = urllib.urlopen('[API or 网址]',params)
result = resultHtml.read()
print result
Python 相关文章推荐
从零学Python之入门(四)运算
May 27 Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
快速查询Python文档方法分享
Dec 27 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
Python unittest单元测试框架总结
Sep 08 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
解决django model修改添加字段报错的问题
Nov 18 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
python3的pip路径在哪
Jun 23 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 #Python
分享Python文本生成二维码实例
Jan 06 #Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 #Python
使用Python神器对付12306变态验证码
Jan 05 #Python
Python聊天室实例程序分享
Jan 05 #Python
详解Python Socket网络编程
Jan 05 #Python
菜鸟使用python实现正则检测密码合法性
Jan 05 #Python
You might like
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
JavaScript & jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
财务管理专业推荐信
2013/11/19 职场文书
建筑经济管理专业求职信分享
2014/01/06 职场文书
自我评价格式
2014/01/06 职场文书
简短证婚人证婚词
2014/01/09 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
餐厅筹备计划书
2014/04/25 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书