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实现的数据结构与算法之基本搜索详解
Apr 22 Python
让Python代码更快运行的5种方法
Jun 21 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
Flask框架单例模式实现方法详解
Jul 31 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
使用python实现对元素的长截图功能
Nov 14 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
Python 音频生成器的实现示例
Dec 24 Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 Python
Python 基于jwt实现认证机制流程解析
Jun 22 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中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
jquery随意添加移除html的实现代码
2011/06/21 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
2016/11/28 Javascript
js实现随机点名小功能
2017/08/17 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
python制作websocket服务器实例分享
2016/11/20 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
详解python中@的用法
2019/03/27 Python
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
函授毕业生的自我鉴定
2013/11/26 职场文书
暑期实习鉴定
2013/12/16 职场文书
党委班子对照检查材料
2014/08/19 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
北京青年观后感
2015/06/15 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技