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