post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。
在Python代码请求,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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请求参数为空的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/leejeff/article/details/80348768