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输出当前目录下index.html文件路径的方法
Apr 28 Python
python中的代码编码格式转换问题
Jun 10 Python
Python走楼梯问题解决方法示例
Jul 25 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
python——全排列数的生成方式
Feb 26 Python
python爬虫筛选工作实例讲解
Nov 23 Python
TensorFlow的自动求导原理分析
May 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
php 中的4种标记风格介绍
2012/05/10 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
python getopt详解及简单实例
2016/12/30 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
Django URL参数Template反向解析
2020/11/24 Python
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
纪检监察建议书
2014/05/19 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
活动简报范文
2015/07/22 职场文书
科普 | 业余无线电知识-波段篇
2022/02/18 无线电
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技