Postman 之 HTTP Multipart/form-data 調試

不管是前端,仍是後端開發,HTTP 接口的使用率實在是過高了。開發好了特定的 HTTP 接口,沒有一個好的測試工具,怎麼能夠呢?  php

 

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

 

接口說明

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

 

Postman 登場

Postman 是 Chrome 的插件,但我以爲 PC 版更好,我選擇 PC 版本!Postman-win64-7.7.3-Setup.exegit

 

安裝好以後,初次打開,須要註冊帳號,按照提示,輸入帳號,設置密碼,而後就能夠註冊成功。登陸進入主界面後。第一眼,就看着特別舒服。json

 

Postman 調試 HTTP 接口後端

主要有3點:api

  • 輸入測試接口服務器

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

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

    根據 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

相關文章
相關標籤/搜索