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调用C语言开发的共享库方法实例
Mar 18 Python
Python探索之创建二叉树
Oct 25 Python
python下10个简单实例代码
Nov 15 Python
Python实现的字典值比较功能示例
Jan 08 Python
Python numpy 点数组去重的实例
Apr 18 Python
python3判断url链接是否为404的方法
Aug 10 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
浅谈Python基础—判断和循环
Mar 22 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
python中编写函数并调用的知识点总结
Jan 13 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
基于文本的搜索
2006/10/09 PHP
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
layui的select联动实现代码
2019/09/28 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
Python实现的数据结构与算法之队列详解
2015/04/22 Python
Django model select的多种用法详解
2019/07/16 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
python内置模块collections知识点总结
2019/12/19 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
python sleep和wait对比总结
2021/02/03 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
硕士研究生自我鉴定
2013/11/08 职场文书
质检部职责
2013/12/28 职场文书
工程资料员岗位职责
2015/04/13 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript