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批量修改文件后缀示例代码分享
Dec 24 Python
Python类方法__init__和__del__构造、析构过程分析
Mar 06 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
简单谈谈python中的语句和语法
Aug 10 Python
hmac模块生成加入了密钥的消息摘要详解
Jan 11 Python
pandas or sql计算前后两行数据间的增值方法
Apr 20 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
使用python向MongoDB插入时间字段的操作
May 18 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
Syphon 使用方法
2021/03/03 冲泡冲煮
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
jquery ajax执行后台方法
2010/03/18 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
Python break语句详解
2014/03/11 Python
Python set集合类型操作总结
2014/11/07 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
详解Python中is和==的区别
2019/03/21 Python
python如何实现复制目录到指定目录
2020/02/13 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
致1500米运动员广播稿
2014/02/07 职场文书
趣味运动会活动方案
2014/02/12 职场文书
《四季》教学反思
2014/04/08 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
先进党支部申报材料
2014/12/24 职场文书