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使用rabbitmq实现网络爬虫示例
Feb 20 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
Python中Numpy ndarray的使用详解
May 24 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
8种用Python实现线性回归的方法对比详解
Jul 10 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
python读取pdf格式文档的实现代码
Apr 01 Python
Python docx库删除复制paragraph及行高设置图片插入示例
Jul 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
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
Python控制多进程与多线程并发数总结
2016/10/26 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
Python requests库用法实例详解
2018/08/14 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
Ruby如何进行文件操作
2014/07/17 面试题
个人对照检查材料
2014/02/12 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
中药学自荐信
2014/06/15 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android