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中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
详解Python3.1版本带来的核心变化
Apr 07 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
如何通过50行Python代码获取公众号全部文章
Jul 12 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
Python利用FFT进行简单滤波的实现
Feb 26 Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 Python
Python执行时间的几种计算方法
Jul 31 Python
python 8种必备的gui库
Aug 27 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
常用的Python代码调试工具总结
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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP4之COOKIE支持详解
2006/10/09 PHP
关于文本留言本的分页代码
2006/10/09 PHP
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
Firefox div高度自适应
2009/04/28 Javascript
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
offsetParent 算法分析
2010/04/05 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
javaScript中"=="和"==="的区别详解
2018/03/16 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
Python 性能优化技巧总结
2016/11/01 Python
django数据库自动重连的方法实例
2019/07/21 Python
elasticsearch python 查询的两种方法
2019/08/04 Python
python应用文件读取与登录注册功能
2019/09/23 Python
python asyncio 协程库的使用
2021/01/21 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
百度JavaScript笔试题
2015/01/15 面试题
历史专业个人求职信范文
2013/12/07 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
小学生环保标语
2014/06/13 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
贫困证明怎么写
2015/06/16 职场文书
感恩主题班会教案
2015/08/12 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB