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 相关文章推荐
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
python selenium UI自动化解决验证码的4种方法
Jan 05 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
pyside+pyqt实现鼠标右键菜单功能
Dec 08 Python
python反转列表的三种方式解析
Nov 08 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 Python
Python使用configparser读取ini配置文件
May 25 Python
QML用PathView实现轮播图
Jun 03 Python
python 抓取知乎指定回答下视频的方法
Jul 09 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
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
JavaScript 原型学习总结
2010/10/29 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
Python中的heapq模块源码详析
2019/01/08 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
临床医学专业毕业生的自我评价
2013/10/17 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
平安建设汇报材料
2014/12/29 职场文书
先进个人材料怎么写
2014/12/30 职场文书
音乐研修感悟
2015/11/18 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers