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 27 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
三步实现Django Paginator分页的方法
Jun 11 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Python Lambda函数使用总结详解
Dec 11 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
在python中修改.properties文件的操作
Apr 08 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 Python
python 下载文件的多种方法汇总
Nov 17 Python
python模板入门教程之flask Jinja
Apr 11 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新手上路(七)
2006/10/09 PHP
解析PHP提交后跳转
2013/06/23 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python生成器的使用方法
2013/11/21 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
意大利网上药房:Farmacia 33
2020/01/27 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
安全目标责任书
2014/07/22 职场文书
田径运动会通讯稿
2014/09/13 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
初三语文教学反思
2016/03/03 职场文书