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使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
Dec 12 Python
python 中xpath爬虫实例详解
Aug 26 Python
python 实现按对象传值
Dec 26 Python
Python数据存储之 h5py详解
Dec 26 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
keras .h5转移动端的.tflite文件实现方式
May 25 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
弄清Pytorch显存的分配机制
Dec 10 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
pandas中对文本类型数据的处理小结
Nov 01 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
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
python实现狄克斯特拉算法
2019/01/17 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
python使用建议与技巧分享(二)
2020/08/17 Python
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
节能宣传周活动总结
2014/05/08 职场文书
党支部综合考察材料
2014/05/19 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
2014年双拥工作总结
2014/11/21 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
总经理司机岗位职责
2015/04/10 职场文书
民主生活会意见
2015/06/05 职场文书
《打电话》教学反思
2016/02/22 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
Python列表的索引与切片
2022/04/07 Python