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 实现堆排序算法代码
Jun 05 Python
Python制作爬虫抓取美女图
Jan 20 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
Python3列表List入门知识附实例
Feb 09 Python
pygame实现弹球游戏
Apr 14 Python
在keras下实现多个模型的融合方式
May 23 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
python适合做数据挖掘吗
Jun 16 Python
Django中使用Celery的方法步骤
Dec 07 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Python中time标准库的使用教程
Apr 13 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
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
python函数装饰器用法实例详解
2015/06/04 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
使用Python更换外网IP的方法
2018/07/09 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
八一慰问活动方案
2014/02/07 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
会计人员演讲稿
2014/09/11 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
四风问题对照检查材料
2014/09/22 职场文书
计划生育个人总结
2015/03/02 职场文书
公司规章制度范本
2015/08/03 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers