python3.x上post发送json内容的请求
2016-06-27 16:58
357 查看
一.摘要
做接口自动化测试时,常常需要使用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封装时的结果图片封装成功后的结果图片
相关文章推荐
- 总结网络IO模型与select模型的Python实例讲解
- python运维开发实践--Day2
- python编写api调用ceph对象网关
- Some tips about argument in python
- Yixiaohan--0011及0012题,敏感词过滤及替换
- python模块基础之json,requeste,xml,configparser,logging,subprocess,shutil。
- PostgreSQL连接python,postgresql在python 连接,创建表,创建表内容,插入操作,选择操作,更新操作,删除操作。
- Two Sum Leetcode Python Java
- python 基本概念、内置对象
- Python入门:selenium之登录(三)不同python版本之间的差异化
- 深入解析Python中的descriptor描述器的作用及用法
- Python笔记第1章,流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用
- 回测框架pybacktest简介(一)
- Clustering by fast search and find of density peaks的python实现
- Python中的字符串查找操作方法总结
- 解析Python中的__getitem__专有方法
- python 内建函数 filter,map和reduce
- 详解Python中的__getitem__方法与slice对象的切片操作
- Python使用smtplib模块发送电子邮件的流程详解
- Python性能鸡汤