浅谈python3发送post请求参数为空的情况


Posted in Python onDecember 28, 2018

post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。

在Python代码请求,如下:

class HttpHelper():
 
 def __init__(self):
  '''获取driver对象,和接口ip地址信息,里面的方法大家可以忽略,根据自己的情况来设置
  '''
  self.dr=Common.driver
  run_info=Common().get_current_run_config()
  app_info=Common().get_app_config()[run_info['_envir']]
  self.ip=app_info['url'].split('/')[2]
 
 def post(self,module,interface_name,post_para={}):
  '''arg: module 模块名
    interface_name 接口名称
    post_para  请求参数,默认是空字典,如果不填这个参数就是post请求参数为空的情况
  '''
  inter_info=Common().get_interface_info()[module]
  url='http://'+self.ip+inter_info[interface_name]['url']
  Common().logger_info("request - api - "+url)
  
  postdata = bytes(urllib.parse.urlencode(post_para), encoding='utf8') 
  Common().logger_info("request - arg - "+str(post_para))
  _jid=Common().get_jsessionid(self.dr) #获取sessionid,这个方法是通过selenium的get_cookie方法来获取sessionid,大家可以参考我其他的文章
  header={
   'Accept':'application/json, text/plain, */*',
   'Connection': 'keep-alive',
   'Content-Type':'application/x-www-form-urlencoded',
   'Cookie':'JSESSIONID='+_jid+'',
   'Host': ''+self.ip+'',
   'Origin': 'http://'+self.ip+''
   }
  Common().logger_info("[header] - "+str(header))
  try:
   req=urllib.request.Request(url,postdata,header)
   with urllib.request.urlopen(req) as resp:
    response=resp.read().decode('utf-8')
    response=json.loads(response)
    Common().logger_info('response - '+str(response))
    if response['data']!='':
     Common().logger_info('http post success!!!')
    return response
  except Exception as e:
   Common().logger_error(str(e))

代码里的Common().logger_***是我们项目的日志方法,输出一些执行日志,大家可以忽略。

以上这篇浅谈python3发送post请求参数为空的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python的Django框架中的模版继承
Jul 16 Python
Python使用gensim计算文档相似性
Apr 10 Python
Python通过Pygame绘制移动的矩形实例代码
Jan 03 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
mac 安装python网络请求包requests方法
Jun 13 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
python 获取sqlite3数据库的表名和表字段名的实例
Jul 17 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
Python面向对象编程之类的概念
Nov 01 Python
python3使用flask编写注册post接口的方法
Dec 28 #Python
python通过tcp发送xml报文的方法
Dec 28 #Python
对python 生成拼接xml报文的示例详解
Dec 28 #Python
Python 3.x基于Xml数据的Http请求方法
Dec 28 #Python
python模拟登陆,用session维持回话的实例
Dec 27 #Python
python requests post多层字典的方法
Dec 27 #Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 #Python
You might like
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
HTML5 与 XHTML2
2008/10/17 HTML / CSS
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
动态密码技术
2012/10/18 面试题
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
小学教师岗位职责
2013/11/25 职场文书
委托书范文
2014/04/02 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
社团活动总结模板
2014/06/30 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
安全生产培训心得体会
2016/01/18 职场文书
mysql数据库实现设置字段长度
2022/06/10 MySQL