python3.x上post发送json数据


Posted in Python onMarch 04, 2018

一.摘要

做接口自动化测试时,常常需要使用python发送一些json内容的接口报文,如果使用urlencode对内容进行编码解析并发送请求,会发现服务器返回了200,OK的状态,但响应内容不可读(像是一堆加密报文)。定位问题时发现抓包发现发送报文的内容与我们发送的json内容不符(会去掉”{“与”}“等内容),所以重新采用了json封装后,问题解决。

二.解决方法

1.先导入json模块,采用json.dumps将json内容进行封装

eg:
import json
str = json.dumps({'userid':'381fccbd776c4deb'})

2.调用这个内容并发送http请求

eg:

import http.client,urllib.parse
import json

str = json.dumps({'userid':'381fccbd776c4deb'})
print(str)

#下面注释部分这样做是不行的
#pararms = urllib.parse.urlencode({'userid':'381fccbd776c4deb'}).encode(encoding='UTF8')
headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
conn = http.client.HTTPConnection("10.3.93.216",8080)
conn.request('POST', '/ippinte/api/scene/getall', str, headers)
response = conn.getresponse()
print(response.status, response.reason)
data = response.read().decode('utf-8')
print(data)
conn.close()

附未作json封装时的结果图片与封装成功后的结果图片:

未作json封装时的结果图片

python3.x上post发送json数据

封装成功后的结果图片

python3.x上post发送json数据

Python 相关文章推荐
python基于multiprocessing的多进程创建方法
Jun 04 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python 爬虫学习笔记之多线程爬虫
Sep 21 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
wxpython实现图书管理系统
Mar 12 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
python连接、操作mongodb数据库的方法实例详解
Sep 11 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
python数据封装json格式数据
Mar 04 #Python
Python爬虫实例扒取2345天气预报
Mar 04 #Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 #Python
浅析python实现scrapy定时执行爬虫
Mar 04 #Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 #Python
Python爬虫框架Scrapy实例代码
Mar 04 #Python
详解python中asyncio模块
Mar 03 #Python
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP时间和日期函数详解
2015/05/08 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP二维数组去重算法
2016/12/17 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
angular6开发steps步骤条组件
2019/07/04 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
Python 用户登录验证的小例子
2013/03/06 Python
python实现文件名批量替换和内容替换
2014/03/20 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
利用python进行文件操作
2020/12/04 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
远东集团网络工程师面试题
2014/10/20 面试题
外贸学院会计专业应届生求职信
2013/11/14 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python