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兔子毒药问题实例分析
Mar 05 Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
Python根据区号生成手机号码的方法
Jul 08 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
Python分治法定义与应用实例详解
Jul 28 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
Python的对象传递与Copy函数使用详解
Dec 26 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网上商城购物车设计代码分享
2012/02/15 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
JavaScript利用HTML DOM进行文档操作的方法
2016/03/28 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
简单实现js放大镜效果
2017/07/24 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
2020/10/30 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
python retrying模块的使用方法详解
2019/09/25 Python
在python中修改.properties文件的操作
2020/04/08 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
运动会四百米广播稿
2014/01/19 职场文书
党校毕业心得体会
2014/09/13 职场文书
入党自传范文2015
2015/06/26 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL