1.我們使用postman進行接口測試的時候,發現POST請求方式的編碼有3種,具體的編碼方式如下:
A:application/x-www-form-urlencoded ==最常見的post提交數據的方式,以form表單形式提交數據
B:application/json ==以json格式提交數據
C:multipart/form-data ==一般使用來上傳文件(較少用)
2.我們使用python做接口測試時,經常使用的方式為:requests.post(url,data),具體我們使用不同的編碼方式來做接口測試:
A:Requests以form表單形式發送post請求,具體代碼實現如下所示:
1
2
3
4
5
6
7
8
|
import
requests,json
url
=
'http://httpbin.org/post'
data
=
{
'key1'
:
'value1'
,
'key2'
:
'value2'
}
r
=
requests.post(url,data)
print
(r)
print
(r.text)
print
(r.content)
|
A1:運行結果如下所示:
B:Requests以json形式發送post請求,具體代碼實現如下所示:
1
2
3
4
5
6
7
8
|
import
requests,json
url_json
=
'http://httpbin.org/post'
data_json
=
json.dumps({
'key1'
:
'value1'
,
'key2'
:
'value2'
})
#dumps:將python對象解碼為json數據
r_json
=
requests.post(url_json,data_json)
print
(r_json)
print
(r_json.text)
print
(r_json.content)
|
B1:運行結果如下所示:
C:Requests以multipart形式發送post請求,具體代碼實現如下所示:
1
2
3
4
5
6
7
8
|
import
requests,json
url_mul
=
'http://httpbin.org/post'
files
=
{
'file'
:
open
(
'E://report.txt'
,
'rb'
)}
r
=
requests.post(url_mul,files
=
files)
print
(r)
print
(r.text)
print
(r.content)
|
C1:運行結果如下所示:
注:E://report.txt==自定義,具體根據自己放的目錄來定義,內容隨意