Postman 之 HTTP Multipart/form-data 調試

無論是前端,還是後端開發,HTTP 接口的使用率實在是太高了。開發好了特定的 HTTP 接口,沒有一個好的測試工具,怎麼可以呢?  

 

而 Postman 就是一款好用的愛不釋手的測試工具,誰用誰說爽。

 

接口說明

已開發好 /woms/api/UpEvent.php 的 HTTP 接口。該接口完成 JSON 消息上報及若干圖片文件上傳的任務。主要通過 HTTP 的 multipart/form-data 格式推送數據到服務器。該格式詳細定義可見  RFC1867

 

Postman 登場

Postman 是 Chrome 的插件,但我覺得 PC 版更好,我選擇 PC 版本!Postman-win64-7.7.3-Setup.exe

 

安裝好之後,初次打開,需要註冊賬號,按照提示,輸入賬號,設置密碼,然後就可以註冊成功。登錄進入主界面後。第一眼,就看着特別舒服。

 

Postman 調試 HTTP 接口

主要有3點:

  • 輸入測試接口

    點擊 Create a request, 輸入 http 測試接口

  • 按照接口方法構造測試數據

    根據 Multipart/form-data 有幾部分內容,就輸入 幾個鍵名稱 和 值內容, 截圖見下!

  • 查看輸出,驗證結果

    Postman 調試截圖如下:

 

注意:上圖我用紅色小圈括起來的部分,這裏一定不可以選錯。

 

抓包截圖如下:

抓包看: 共發送了6段數據,第一段是 Json,其餘的都是 jpeg 的圖片。其實這裏的第一段 Json 數據就是對5張圖片數據的描述。

 

HTTP multipart/form-data 補充

multipart/form-data 主要是將多條表單的數據處理爲一條消息,發送到服務器。

多條消息之間用分隔符分開。分隔符用 boundary=xxxxxx 來定義,xxxxx就是分隔符。

這樣一個 HTTP 請求,由於有 boundary 隔離,既可以上傳文本消息的同時,也可以上傳文件。當上傳的字段是文件時,可用 Content-Type 標明文件類型;

消息實例的具體文本如下:其中圖片數據特別多(亂碼部分),我特意刪除後貼出來:

 1 POST /woms/api/UpEvent.php HTTP/1.1
 2 Content-Type: multipart/form-data; boundary=----4235013262151947840
 3 User-Agent: PostmanRuntime/7.17.1
 4 Accept: */*
 5 Cache-Control: no-cache
 6 Postman-Token: 552bb4b0-ddbe-4e10-b5b1-dd16ce6afe82
 7 Host: 192.168.100.146
 8 Accept-Encoding: gzip, deflate
 9 Content-Length: 661588
10 Connection: keep-alive
11 
12 ----4235013262151947840
13 Content-Disposition: form-data; name="info"
14 Content-Type: application/json
15 
16 {"AuthUser":"13800001111",
17 "AuthPasswd ":"123456",
18 "Timestamp":"1568743234",
19 "EventTime":"1568743234",
20 "EventType":1,
21 "EventLevel":2,
22 "EventSubject":"Test",
23 "EventDesc":"Test",
24 "Longitude":"33.44",
25 "Latitude": "116.43",
26 "AccpetUser": "18200129832",
27 "FileList": [{
28 "FileName": "haha.jpg",
29 "FileSize": 83},
30 {"FileName": "haha.txt",
31 " FileSize": 16}]
32 }
33 ----4235013262151947840
34 Content-Disposition: form-data; name="file1"; filename="haha.jpg"
35 Content-Type: image/jpeg
36 
37 ???àJFIF??C    
38  $.' ",#(7),01444'9=82<.342??C
39 ----4235013262151947840
40 Content-Disposition: form-data; name="file2"; filename="6.jpeg"
41 Content-Type: image/jpeg
42 
43 ???á
44 ExifII*4M¤?(1"′2?iì$ü
45 ?áT?a1??ù
46 ----4235013262151947840
47 Content-Disposition: form-data; name="file3"; filename="7.jpeg"
48 Content-Type: image/jpeg
49 
50 ?s??:?ó?μ???üo6??é_?o????~áczóê??A????&???#áè?????áè??ù
51 ----4235013262151947840
52 Content-Disposition: form-data; name="file4"; filename="8.jpeg"
53 Content-Type: image/jpeg
54 
55 ?y??ü·á??ù
56 ----4235013262151947840
57 Content-Disposition: form-data; name="file5"; filename="9.jpeg"
58 Content-Type: image/jpeg
59 
60 ???á7%ExifMM*44¤?(1"′2?iì$
61 ?}?.W§?N/éy}'ü?%ì}′ù=±ú??S?g???Yoíùüê|t???ú??ù
62 ----4235013262151947840--

 

原文出處:https://www.cnblogs.com/bookyao/p/11602212.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章