Python使用requests发送POST请求实例代码


Posted in Python onJanuary 25, 2018

本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下。

一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样:

  • 请求行
  • 请求报头
  • 消息主体

HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式。服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析。具体的编码方式包括:

application/x-www-form-urlencoded

最常见post提交数据的方式,以form表单形式提交数据。

application/json

以json串提交数据。

multipart/form-data

一般使用来上传文件。

2.7.1 以form形式发送post请求

Reqeusts支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给requests.post()的data参数即可。

url = 'http://httpbin.org/post'
d = {'key1': 'value1', 'key2': 'value2'}
r = requests.post(url, data=d)
print r.text

输出:

{ 
“args”: {}, 
“data”: “”, 
“files”: {}, 
“form”: { 
“key1”: “value1”, 
“key2”: “value2” 
}, 
“headers”: { 
…… 
“Content-Type”: “application/x-www-form-urlencoded”, 
…… 
}, 
“json”: null, 
…… 
}

可以看到,请求头中的Content-Type字段已设置为application/x-www-form-urlencoded,且d = {'key1': 'value1', 'key2': 'value2'}以form表单的形式提交到服务端,服务端返回的form字段即是提交的数据。

2.7.2 以json形式发送post请求

可以将一json串传给requests.post()的data参数,

url = 'http://httpbin.org/post'
s = json.dumps({'key1': 'value1', 'key2': 'value2'})
r = requests.post(url, data=s)
print r.text

输出:

{ 
“args”: {}, 
“data”: “{\”key2\”: \”value2\”, \”key1\”: \”value1\”}”, 
“files”: {}, 
“form”: {}, 
“headers”: { 
…… 
“Content-Type”: “application/json”, 
…… 
}, 
“json”: { 
“key1”: “value1”, 
“key2”: “value2” 
}, 
…… 
}

可以看到,请求头的Content-Type设置为application/json,并将s这个json串提交到服务端中。

2.7.3 以multipart形式发送post请求

Requests也支持以multipart形式发送post请求,只需将一文件传给requests.post()的files参数即可。

url = 'http://httpbin.org/post'
files = {'file': open('report.txt', 'rb')}
r = requests.post(url, files=files)
print r.text

输出:

{ 
“args”: {}, 
“data”: “”, 
“files”: { 
“file”: “Hello world!” 
}, 
“form”: {}, 
“headers”: {…… 
“Content-Type”: “multipart/form-data; boundary=467e443f4c3d403c8559e2ebd009bf4a”, 
…… 
}, 
“json”: null, 
……

文本文件report.txt的内容只有一行:Hello world!,从请求的响应结果可以看到数据已上传到服务端中。

总结

以上就是本文关于Python使用requests发送POST请求实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python批量下载图片的三种方法
Apr 22 Python
python开发之thread线程基础实例入门
Nov 11 Python
python生成器表达式和列表解析
Mar 10 Python
Python实现爬取需要登录的网站完整示例
Aug 19 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
python实现三维拟合的方法
Dec 29 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
一篇文章弄懂Python中所有数组数据类型
Jun 23 Python
python数值基础知识浅析
Nov 19 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 Python
python使用pandas实现数据分割实例代码
Jan 25 #Python
python实现闹钟定时播放音乐功能
Jan 25 #Python
python实现壁纸批量下载代码实例
Jan 25 #Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 #Python
Python动刷新抢12306火车票的代码(附源码)
Jan 24 #Python
python中的set实现不重复的排序原理
Jan 24 #Python
详解Python之unittest单元测试代码
Jan 24 #Python
You might like
php比较相似字符串的方法
2015/06/05 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
PHP attributes()函数讲解
2019/02/03 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
Vue中实现权限控制的方法示例
2019/06/07 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
技校毕业生个人学习的自我评价
2014/02/21 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
单位未婚证明范本
2014/11/25 职场文书
北京英文导游词
2015/02/12 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
教师读书活动心得体会
2016/01/14 职场文书