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利用hook技术破解https的实例代码
Mar 25 Python
python使用PyFetion来发送短信的例子
Apr 22 Python
Python实现抓取城市的PM2.5浓度和排名
Mar 19 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
virtualenv实现多个版本Python共存
Aug 21 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
Python函数参数操作详解
Aug 03 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
python opencv将图片转为灰度图的方法示例
Jul 31 Python
Pygame框架实现飞机大战
Aug 07 Python
python实现马丁策略回测3000只股票的实例代码
Jan 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中的cookie
2006/11/26 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
python支持断点续传的多线程下载示例
2014/01/16 Python
Python制作Windows系统服务
2017/03/25 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Python插件机制实现详解
2020/05/04 Python
python判断是空的实例分享
2020/07/06 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
创业计划书中要认真思考的问题
2013/12/28 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技