zoukankan      html  css  js  c++  java
  • Postman 之 HTTP Multipart/formdata 调试

    无论是前端,还是后端开发,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--
  • 相关阅读:
    anaconda在公司内网如何避免安装过程中HTTP0的错误?(windows)
    tensorflow视频学习笔记
    RNN,LSTM,SRNN,Long Short-Term Memory as a Dynamically Computed Element-wise Weighted Sum
    全国大学生数学建模竞赛广东省分赛 A题 CT系统参数标定及成像 方法总结
    elasticsearch
    crawler
    【英语学习】 第39天翻译练习之办公室环境
    【英语学习】第三周翻译练习之出国留学
    【英语学习】第二周翻译练习之网上购物
    【英语学习】第一周翻译练习之博物馆
  • 原文地址:https://www.cnblogs.com/bookyao/p/11602212.html
Copyright © 2011-2022 走看看