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爬取可用的代理IP
Aug 18 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
Python发送邮件封装实现过程详解
May 09 Python
python制作微博图片爬取工具
Jan 16 Python
python热力图实现简单方法
Jan 29 Python
Python中的程序流程控制语句
Feb 24 Python
Python各协议下socket黏包问题原理
Apr 12 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
PHP在线书签系统分享
2016/01/04 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
javascript数字验证的实例代码(推荐)
2016/08/20 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
vue穿梭框实现上下移动
2021/01/29 Vue.js
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python数据操作方法封装类实例
2017/06/23 Python
Python进程间通信Queue实例解析
2018/01/25 Python
python装饰器使用实例详解
2019/12/14 Python
python实现双色球随机选号
2020/01/01 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
校班主任推荐信范文
2013/12/03 职场文书
预备党员表决心书
2014/03/11 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
车贷收入证明范本
2014/09/14 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
Python合并pdf文件的工具
2021/07/01 Python
Java实现给Word文件添加文字水印
2022/02/15 Java/Android
python数字图像处理:图像的绘制
2022/06/28 Python