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 13 Python
详解使用Python处理文件目录的相关方法
Oct 16 Python
python装饰器实例大详解
Oct 25 Python
python取代netcat过程分析
Feb 10 Python
Python if语句知识点用法总结
Jun 10 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 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初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php定界符
2014/06/19 PHP
php中file_exists函数使用详解
2015/05/08 PHP
php开发工具有哪五款
2015/11/09 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
python读写文件操作示例程序
2013/12/02 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
Python3 socket同步通信简单示例
2017/06/07 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
基于Python测试程序是否有错误
2020/05/16 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
师生聚会感言
2014/01/26 职场文书
新任教师自我鉴定
2014/02/24 职场文书
学校运动会广播稿
2014/10/11 职场文书
升学宴答谢词
2015/01/05 职场文书
2015年保洁员工作总结
2015/05/04 职场文书