1. 程式人生 > >介面測試get請求url拼接函式(python)

介面測試get請求url拼接函式(python)

get請求地址一般是 協議+域名+埠+路徑+引數,除了協議和域名其他均可為空。

     http(s)://domain:port/path?key1=value1&key2=value2&...

拼接函式:協議預設http,domain必輸項,port預設空,path預設空,params預設空,這幾項預設引數。

 

 

'''
get請求的地址拼接函式= 協議+域名+埠+路徑+引數
dinghanhua
2018-11-17
'''

def get_url_format(domain,protocal='http',port=None,path=None,params=None): #
預設引數放到最後 url = protocal+'://'+domain if port: url += ':'+str(port) #port不為空,加上:port if path: url += '/'+path #path不為空,加上/path if params: if type(params) != type({}): raise Exception('params必須是字典') #不是字典格式丟擲異常
url
+= '?'+'&'.join([ str(key)+'
='+str(value) for key,value in params.items() ]) #params不為空,加上?key1=value1&key2=value2 return url

 

 

測試一下,拼接的是否正確

print(
get_url_format('192.168.6.1'),
get_url_format('192.168.6.1',protocal='https'),
get_url_format('192.168.6.1',port=8080),
get_url_format('192.168.6.1',path='
search.html'), get_url_format('192.168.6.1',protocal='https',path='search/p',params={'name':'tester'}), get_url_format(domain='192.168.6.1',protocal='https',port=8080,path='search/p',params={'name':'tester','flag':1}), sep = '\n' )

 

 

 

 the end!