当前位置: 移动技术网 > IT编程>脚本编程>Python > 浅谈python3发送post请求参数为空的情况

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

2019年01月04日  | 移动技术网IT编程  | 我要评论

单家鸣,遥遥领先的意思,香港天气预报查询

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请求参数为空的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网