浅谈python3发送post请求参数为空的情况
post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。
在Python代码请求,如下:
classHttpHelper():
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]
defpost(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)
withurllib.request.urlopen(req)asresp:
response=resp.read().decode('utf-8')
response=json.loads(response)
Common().logger_info('response-'+str(response))
ifresponse['data']!='':
Common().logger_info('httppostsuccess!!!')
returnresponse
exceptExceptionase:
Common().logger_error(str(e))
代码里的Common().logger_***是我们项目的日志方法,输出一些执行日志,大家可以忽略。
以上这篇浅谈python3发送post请求参数为空的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。