QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1555|回复: 1
打印 上一主题 下一主题

最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用...

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2020-5-20 11:22 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用的详细教程)
    4 K; s/ {2 j8 p
    5 h' q" C* ~8 Y/ i1 I0 ]- G9 P+ u目录:
    1 ~. D: B7 t' I) M: u. C* j& E8 ypostman是用来干什么的?" |# T4 X( }% o8 S* A
    如何下载?
    5 H4 o' M8 |" c0 V如何使用postman测试接口
    " }. d9 l' E0 c, r
    7 ~; f: H$ Z3 @( d对于前后端对接小白也写了一篇博文:前后端(Java)对接的完整过程(小白第一次进行前后段对接,记录一下。希望对你有帮助)" j! ?, S4 q1 Y1 D1 _" v
    + z( V; k5 W* z, `5 d6 {" Z
    postman是用来干什么的?
    - {5 u* D7 l9 p$ Q9 R) k
    2 L0 B/ @# ?& R/ {/ s6 G当我们写完了自己的接口时,无法确定自己的接口是否正确就去与前端的兄弟们对接会引来很多不必要的麻烦。
    - R! f% b; n  {- y而postman就是用来解决这个问题---测试接口(测试我们后端Servelt中写出来的url地址的返回结果是否正
    2 S* N/ i7 A1 w4 _5 c确)。- |7 L7 O2 x0 s% R1 ^7 X3 r
    14 R" p: T* y! r3 x0 a
    2
    7 O# `! e! ?* J: o% `, s9 |3
    ! B- r$ X- w% K8 M4 E如何下载?8 _% @* D1 c: L( @( F% ?5 H
    # L1 p, b9 h* Z( S0 h
    postman的官方网址
    4 {5 ^' y, H/ t% O5 M2 ~+ G6 Q% d5 C5 E3 U) r6 o, P( L, x
    进入官网后点击右上角的download。
    ) A, K3 V% v) c& }8 j* W2 x8 O/ \ 1.png " S" n* U8 l  }1 C. D, s$ O9 N4 l0 W, w
    + y6 R% ^' ^1 V, _0 I
    [color=rgba(0, 0, 0, 0.74902)]继续download。( z$ S4 x( D1 F/ A" m3 b- g
    2.png
    6 I# C6 }% {: y: Y[color=rgba(0, 0, 0, 0.74902)]根据自己的操作系统选择相应的版本。- {, L; X$ H: }- l
    3.png
    : @! R# [0 B+ R8 A
    • 选择相应的下载位置。我推荐桌面安装时比较方便。(此时下载的安装包,没必要在意下载的位置。安装完删除即可)
      . r/ G+ @/ _$ }  B1 @. u
    4.png 4 R! b1 e: ]7 `: Z4 ?4 F
    4. 然后打开安装包。由于小白已经安装过了,不能再次安装。所以安装的过程小白就不多做解释了,和咱们下载一个qq,微信差不多。安装位置推荐换成除C盘以外的其它盘。这是个好习惯。不过软件不大,安装在C盘也无伤大雅。对了,下载完成后就可以把安装包删除了。( W: Y  [* F. g) [, g3 I, [
    5.png % P% k$ Y# J! f; _
    如何使用postman测试接口

    考虑到你可能和当时的小白不知道项目的url地址怎么写,于是补充来了:项目的url地址是什么?

    强调一点:在使用postman测试接口时一定要先将你的idea运行,不然发送请求后只有404。(第一次使用时,很容易犯这个错误)。

    上图是postman大致的位置的解释。
    " \: V, N& S% V! S7 M1 h7 C0 L( c/ h4 y- W* v+ j8 L' `
    使用postman测试接口常用的大致分为两种; C9 F7 O' r8 E! B! ]
    : _) W6 N& ^! @5 G' A
    通过参数的形式向后端传的值后然后在postman测试
    ( n; J5 g' `% e# u) yServlet代码
    " E5 P  L6 h% A6 S: s2 M4 ^( S; E, i0 X# t/ c2 {
    下面的代码的功能是获取postman向后端传的两个参数(“id”和“username”)。然后使用获得的这两个参数的! [) r# R" n: J: M/ b; ?1 ?8 c6 `6 c
    值输出对应的数据。至于对获得的参数的具体的操作,这个因需求不同而不同,小白在这里就不粘出自己相应
    . _% f- T2 }9 x$ E$ ~& k- ~- N的代码了。
    6 `/ W5 `3 h) e7 o3 e3 b1
    # K& ?5 t9 ?9 z! }# h2( D. h1 V' g& @% ]$ d+ r$ s
    3
    6 {& K9 j3 Y8 F, x6 J+ Rimport com.dao.JdbcController;
    6 }5 {  R% M8 k' {1 Pimport com.dao.QueryOutput;
    + Z: J4 |- o2 @6 q. Q* t9 z; m! {) Oimport com.util.Json.ChangeJson;
    * {% P) ~+ s$ M) r% @! |! T# t: v2 E
    & a1 {2 k) _: n! E: `& q1 D0 \import javax.servlet.ServletException;
    & Y7 K0 C6 x( `" g9 Y1 dimport javax.servlet.annotation.WebServlet;
    $ N) \$ S, A6 h/ J- z' {import javax.servlet.http.HttpServlet;# N' x$ `. `' A) p+ }5 S
    import javax.servlet.http.HttpServletRequest;  N; [5 d# n3 A- F  q. |3 [
    import javax.servlet.http.HttpServletResponse;
    7 b8 B8 b' F8 h. P$ ]& Rimport java.io.IOException;
    : {; k) F: |9 y' v, dimport java.io.PrintWriter;  F7 p6 ]: q5 y! N+ V! I
    ( g, @2 z* W0 c, i
    4 ]3 u" u$ q. Q, b
    /**3 M7 k6 E4 ^4 l4 \" L2 Z
    * Servlet类
    ( y2 B9 A# q& ~. k+ [ * @Author 10593: X3 \' }$ I" R: v5 f+ b
    */
    9 q; t6 o# A+ Q; W( F& H  K* k! _
    ! N1 T1 ?+ e3 U* }( {0 f@WebServlet("/Servlet2")* M5 c6 O: s+ g: i
    public class Servlet2 extends HttpServlet {6 P% f! S2 k, D8 E
        /**
      |( I" _5 U6 o1 o4 Q! q     * doPost方法:
    - j5 N. p5 h9 {+ h     * @param request
    ) N% d$ X; v0 d1 |: r& M: p7 o     * @param response. x* a2 e( M8 Q% ]
         * @throws ServletException
    6 a( b, z2 D; O4 `0 t3 R) N     * @throws IOException
    $ o- [" q* P5 v, N# f; ^( R! }9 m     */8 G. }" P5 k8 n# x' [5 G  K
    , {* w: T7 K' Q$ e! L
        @Override
    ' X0 m8 |# ?$ Y7 E  A6 B    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {$ V/ [3 P2 X2 M, {2 P" j* Q
            // 响应参数格式设置
    3 [8 ]- ?" p" C7 U, V) p! j        response.setCharacterEncoding("UTF-8");/ }% t3 A6 ^6 K6 I& @8 g7 I" G, Q; c
            response.setContentType("text/html;charset=UTF-8");4 c5 o+ D. X: [; o4 |0 j
    9 ]( K5 u9 X% R# U2 Y0 C" K# U
            //向外传值,并将数据转化为json格式保存在一个字符串对象里4 `4 d; k7 B$ I( v9 b) T
            JdbcController jdbcController = new JdbcController();
    - @! u* _6 o5 y. G, H: _' b( b        ChangeJson changeJson = new ChangeJson();
    1 v/ u, t# q2 x7 C& o, W1 g: o6 u. Q/ X5 M; C! A
            //将此字符串对象输出2 y; ?7 P( j' b6 C+ f; c5 c
            PrintWriter out=response.getWriter();
    2 V! |0 s$ z5 i/ Q: o2 N9 k: Z& D' {% @+ O# o6 T( h6 X, A
                String str1 = request.getParameter("id");
    2 o% t4 k  e8 s8 e            String str2 = request.getParameter("p_headline");1 V/ h9 d# A, \7 G' ~' j
    ; Z' {+ D. P- G/ b  N: ~7 \
                if (str1 != null || str2 != null) {
    : V! v( X; J' b# ]1 d; _9 a                //将获得String类型的变量转化为int类型
    ( p3 {5 t& A8 I, p                int str3 = Integer.parseInt(str1);
    ( A8 W5 }5 H& k
    9 C; q& v4 C( C- |! @                QueryOutput queryOutput = new QueryOutput();. c( u% U3 E2 L' Y: z8 [
                    String str4 = changeJson.ChangeJson(queryOutput.QueryOutput(str3, str2));
    4 k8 Z3 O) j. R8 M$ r7 F                out.println(str4);3 u' k, Y' ^+ F- I  @
                    out.flush();5 w1 [7 v. M. M% L% {, d
                    out.close();1 e( y# h1 I+ `
                } else {
    ( b. e: M# e0 k                out.println("您未传入参数");
    # M  K2 M# x8 \2 O' Z                out.flush();9 T# L# t* Y* a. M2 g, E$ |( l
                    out.close();7 [- e6 \( y. m! [) q! [# G+ {
                }4 [$ F4 J5 V6 {* K+ F  F. Q
    : A" c: Y1 m( P6 S2 z2 R* v+ E& W1 z* I
        }
    ' K, g1 f# r4 O/ |' ?; M  h" l- h: f$ T$ C9 w7 F
        /**7 @/ H$ j# |7 W  s1 Y
         * doGet方法:( \; z3 `0 }3 B5 i
         *              转到doPost方法。: c5 ]/ k, \" y: r8 D) ~# m& W
         * @param request! o! `3 q: A$ ~
         * @param response9 s" [, Z& p" L9 {. j* q
         * @throws ServletException4 W) \1 p" ]  C4 H9 V1 {
         * @throws IOException
    , V* N4 k; g7 J& {. k/ V     */* j( L4 R$ T& j0 L( Z- f. H
    0 Z+ ~' b5 y3 E; C5 ]/ I
        @Override
    5 o& y2 \( [& o! k$ W8 ]    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      @! T9 z6 p; S            //当调用get方式请求时,会自动转为调用dopost方法
    & E- F( K* l) z/ i) Y$ a  C        doPost(request,response);7 ^. v. Y/ z8 u4 U6 X- `+ e
        }
    1 }$ V: o4 n% S( I. @) E: }}
    7 a+ [/ C' A5 S& }9 h8 M+ o  Q6 t6 m; {' x8 ^& g
    ) d6 S  c& a5 k* w5 n2 \& Y. n% S
    1+ Y0 f! ^2 g- h9 }* d( ]7 J
    2
    ' r5 B9 B8 ?* k; w7 {! [3* L' R4 O- Z3 r7 {
    4
    * d" Z3 `9 `1 D+ ]5; h8 k2 L2 W/ G* z" V, S% v
    6: k  G+ a* _3 W. f
    7' e# ~4 X( E6 h5 C& b! {
    8
    * C3 D1 s9 }7 C/ t, W% P( b" \9
    & s0 f) }" M$ {. q. X1 q10( j7 Q8 Z1 I4 E" E3 ~: y
    11
    + H) N! H, ~6 H1 B: z% ]12$ K- ~! S4 Y3 G2 ~  k* Q
    130 K) b* J8 J4 M) I# @$ T
    148 W* N% M) _# Q
    15
    & z+ w0 r: L, |  e! Y" \16* F  b3 [# e& v0 m( Q& d
    17
    # K; z' X) `- P18) {; B1 j0 m0 P) M2 {
    19- d; P1 H; w' _# }! a: {: `
    20
    9 H/ \- \4 D) Z! }4 w$ ]" j4 p21
    4 v- U1 s( U# ^' ^' I22
    * c/ a* C# |. S1 q7 A# q6 x& T2 N23; ^1 Q; |" R  ]
    249 g5 y  C% c/ c! e" |; E5 e
    25
    ! i$ \  ~6 h( ~$ \261 H* p" f; G- ^7 _' F
    27' x2 h2 F& ?# C; @/ Q" B6 q5 R! L
    28. \* \7 h- g3 G
    29
    & ^0 z  b  K1 o" U" f300 A0 v/ D( y4 L$ M8 V
    313 R& |  s; b/ f2 M
    32
    * U' M# e2 J2 V4 ~9 W33  @4 I4 z0 N$ }4 L
    34; _, V& J2 x9 D( `
    35, `& [  V$ P* m$ s# y# z
    36. h8 G  }5 M) t3 U. }9 G
    37
    * |' q7 l% b2 m38! l: h9 }+ ^. i) q5 j
    39
    - E, g1 o8 m" {# G40
    8 Z- K: m6 L' f( M& R7 O416 w! W3 e' J5 p- A; ]
    42
    4 O. z8 X0 y1 m430 q, Z4 F: I9 c
    44" a( n8 ?) i/ \
    45
    % g6 f0 y; g8 L& x3 R" F! x46
    / a3 P( f! K$ l471 V/ G( x. a' e4 P. @3 ~) ~
    48, d- q8 |* `  T' u$ `# A
    49
    $ u4 }' p! y% I  \- f, _% V: o. l( \& p6 E50$ j) e. \3 n: V) ]
    513 f% v6 ?" w5 t0 ]2 n
    52
    % n0 `$ h3 l' f) c53
    " y( G1 R9 |4 P: @! G6 U54: s7 f( k$ Y6 e8 |. N' c
    552 w3 n' Z4 z) g6 t/ L( X
    56
    % W( Q. m/ s) |2 O57
    8 K4 R. X7 N; G7 Y% s1 _* v58# N7 k, j: I1 Q) Q: K) A
    598 `! g/ C1 a; F1 X6 C  G4 c2 G
    60# f1 `$ R$ f  ^8 F
    61
    9 Z$ C; x1 z2 r" n3 u5 o4 p5 w62
    " e3 |* m0 [, j. T63
    " S. D, a6 P0 v1 T$ f6 p64- n3 ^. Z- h, Q/ s4 h; E
    65- g# z" C7 _" ^( N* w0 d# q' e. v7 Q
    66
      G3 C3 I0 U. M6 h3 K5 ~  J67
    " K% c/ \  J5 x* \68/ l% U/ M( z# _8 W
    69
    ! L: R/ A" j) @% ?8 y70: E9 b+ a6 M1 ?
    71
    ' P+ F$ _) l8 b, b  B$ P! |72
    0 T' d9 l2 B# ?+ y! ~73
      f; l! P% c4 W8 b7 i9 ?  A. `74) ^& S$ K- @  A' t, ^6 P4 {8 S
    75
    & F: w( K3 X  A) T5 s! ]  Z6 n) w2 P76+ N8 p" I. }  D. F- z: S) `
    77. n( j) p! ^7 T) K
    78
    + |9 ?  e" d+ h. }7 Q4 S" _然后使用postman来测试这个接口。+ d. Y6 l' N  r& i4 T
    8 {: n) y2 N9 F
    1)在对应的位置输入你要传入的参数和值,还有URL地址以及你的请求方式3 \( h! F5 C" a- f* q+ y
    注意此时是未将参数勾选的url地址项目的url地址是什么?
    1 f/ d0 k, r4 W2 s4 S4 K 7.png 2 o0 l9 s+ P3 w0 j3 x
    2)点击send就可以传出相应的参数值, F; P1 y' j  O4 Z( b
    - b+ t7 O3 G: k! z$ q8 d0 o5 ~
    8.png & X0 `& l. U5 B, K* w
    通过流的形式向后端传值然后在postman测试。2 g  u% R  z. B; J. ?3 w' J
    Servlet的代码
    ! c* }. ^3 h# S5 N6 j$ X* H' i' d2 V: b
    注:由于本篇博文只是为了讲解postman的使用方法。所以Servlet源码中并未对从请求流中获得的json数据进行转化和操作,相关方面的使用和操作详见我的另一篇博文:Java如何处理前端传来的json格式的数据并将它转化为相应的对象,然后进行使用5 ^% {: J0 W) ^. o

    ( g( P. W/ }( \/ R5 P@WebServlet("/Servlet")
    5 f) p6 q% X$ X0 U. M( `8 Wpublic class Servlet extends HttpServlet {4 b1 X3 C8 ~/ k
        @Override
    8 y, U9 Z8 n: o, c9 g, y    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {, c/ x& J+ E0 h5 E( Y$ `

    & I' b; T7 Z  C6 ~& {        // 响应参数格式设置. A+ g- l& T0 \* K
            response.setCharacterEncoding("UTF-8");
    ( H& _% s7 b( ~' Q8 X1 A        response.setContentType("text/html;charset=UTF-8");9 Y# N& A& _2 `, g: Y
    3 s, M! E$ y6 u0 E

    ) s" p0 q. H* S; ~. p$ p# x, Q        //将此字符串对象输出" Z- ~1 M3 W/ d. \
            PrintWriter out=response.getWriter();
    1 ]( \7 E" x9 X$ A8 v
    - F' ^/ ~1 g) v5 g  G1 w7 E
    1 a+ e- S0 B$ M; Z7 F        //使用InputStreamReader对象,获取前端传来的数据.其中* p) E. \5 c3 H( F4 z8 |
            // request.getInputStream()是读取前端传递来的数据字节流,. h- s$ q9 x& O! b( `5 d
            // StandardCharsets.UTF_8是将前端传来的数据转化为UTF-8的编码方式3 z& ]8 p; O+ _* J" a3 w
            InputStreamReader insr = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8);: o5 G9 G- \( e1 P% t5 @
            StringBuilder body = new StringBuilder();
    , h. G0 P" l* W7 _7 m5 K0 {        int respInt = insr.read();
    : o' \$ L! s- T0 N8 ~/ B        while(respInt!=-1) { // 读取请求数据; s! K: H8 K8 d+ T
                //将读取的字节流中的每一个字节转化为字符,然后添加到StringBuilder类型的对象中5 j& _2 q( r8 u  V- p; x$ \8 R
                body.append((char) respInt);1 O% M3 ?) e/ G/ r* M# C5 }" |, z* J
                respInt = insr.read();' ]$ p4 C2 m! X1 C
            }
    : b% D2 R0 @* z; r4 x0 T$ b( A
    % C- G3 U: z- ~% }. A# R
    / F$ X6 m! P& j* `- E  L        //out的print方法可以输出对象
    * Y5 u) U" I3 ~6 S+ k0 I) S! t        out.print(body.toString);. E" R$ f8 \& P+ a0 Z
    5 `# T, O# H# [! G( ~
        }$ B* e1 p  q) i' `" P
    14 e5 f  p8 v" w8 ]$ J  \
    2# X' n% N0 `0 t% H5 {3 j
    31 I1 |6 F: e! o1 h
    4' |+ n: w/ I  P+ U5 _  }
    58 r- A# R, C" R# a
    6
    9 h7 l5 f! v: T3 E' q% o, r! I75 J; Y3 K5 M; ?
    8
    ! Y3 o- ?: K" T' c6 J# k9' u. i( ~! K( p7 Y7 w
    10
    9 v: F/ P$ g1 s+ }' `11
    * U6 ~' @1 E6 C12
    5 j1 F# R5 l# B133 Q* n  e3 Z) G: o
    14; X, |& o, ]3 @3 g8 r9 l8 c6 N
    15
    ; l, Z* ]+ {& f16
    & X. X0 ?1 r$ ]7 m7 S17
    $ m3 ~5 `+ P$ k) W. f; `18% }2 b% |4 w8 X$ B3 X
    19
    , s8 _. j6 Z, G( O202 W+ \% C) a5 a2 O0 K3 i
    217 g- t5 I! c2 W9 _9 N8 N
    22
    9 b# \7 }7 b1 f/ @3 }1 F# @( y23$ Z1 D: t0 r2 z7 Z
    24
    " i0 s. \6 ~  e; R% x25
    / j' W" T4 ?% d+ s" T/ @26
    . ]2 E! d* C" ~; f8 q1 a  i27
    3 ]% u; U/ N9 n0 \/ e28, z9 L; t% ~; M) L$ a
    29
    4 \. @/ z- O0 R' A' A$ O; D30
    & ~2 _; m* @- u3 K6 z31
    2 Z+ k5 B" [; g  P1 j! obody中的raw
    ! B  o0 p# v1 L0 e3 |9 L. ?" S* B
      X  N6 W4 |1 i- Y4 i, T! y& c1 v4 Z然后使用postman来测试
    ; S0 H8 q- i+ \  t& ^+ K) g, k+ y- r. [# J0 N2 h
    1)首先填写你的url地址项目的url地址是什么?和你的请求方式+ I) m$ T  }! `: X$ S$ e

    & B/ C; V7 g0 Y, j5 q8 H- J8 p1 b 11.png " O0 ]  I; J9 d/ X$ O
    12.png
    & Z; B: [) D! U8 d1 Y2 R2 S$ P* m1 w2 Z4 S
    你的Servlet路径
    . R0 v1 l8 \# J7 p4 M1 T/ E这里分两种情况:
    $ L6 j) _; r5 r- C1)如果你是使用的下面这种部署Serlvet的方式,那么你的Servelt路径就是双引号中的内容。
    0 g1 }6 p8 i. M+ K9 N2 `: I' J2 x1 O
    @WebServlet("/Servlet2")$ |  z6 _0 C6 S2 c0 c
    14 Z9 I  D9 H3 R
    2)如果你使用的web.xml的部署方式,那么你的Servlet路径就是下图所示的位置。
    $ G: D( M3 a0 S4 E
    3 ?" b+ `/ j% E+ N+ J" r 13.png
    ! F3 n' ^' S1 S% F% M5 B0 J————————————————% z. _- C& @. H/ v
    版权声明:本文为CSDN博主「小康小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    9 ?; n! o7 A$ j& @7 L2 y原文链接:https://blog.csdn.net/weixin_45791445/article/details/106228736
    ) a3 X% P8 G$ M  t+ C# q
    ( t7 c4 H& i# n4 f' {' W% M7 H# m+ ?! `0 Z
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    chace        

    0

    主题

    2

    听众

    259

    积分

    升级  79.5%

  • TA的每日心情

    2020-7-11 15:12
  • 签到天数: 43 天

    [LV.5]常住居民I

    网络挑战赛参赛者

    自我介绍
    学生
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-7-26 09:30 , Processed in 0.403493 second(s), 58 queries .

    回顶部