数学建模社区-数学中国
标题: 最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用... [打印本页]
作者: 杨利霞 时间: 2020-5-20 11:22
标题: 最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用...
最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用的详细教程), ]+ v; s# M. u
1 {/ j9 [0 k9 v8 c
目录:
6 O8 V% z5 ~& ]postman是用来干什么的?, C# W V& \# T. p5 J7 I1 r
如何下载?
# ^/ H/ A6 K6 m) ]9 w) O2 P如何使用postman测试接口
9 k, z/ q+ q. V' G' A1 d1 G& }! l2 a1 I6 P; A B( J9 r
对于前后端对接小白也写了一篇博文:前后端(Java)对接的完整过程(小白第一次进行前后段对接,记录一下。希望对你有帮助)5 U8 ?6 r1 h4 l" \8 L( l
" P3 U4 k% `$ M$ w
postman是用来干什么的?" @ g; {; L& t
$ X7 |- E& R9 W# T! Z
当我们写完了自己的接口时,无法确定自己的接口是否正确就去与前端的兄弟们对接会引来很多不必要的麻烦。+ r& \8 e/ G4 c5 Y
而postman就是用来解决这个问题---测试接口(测试我们后端Servelt中写出来的url地址的返回结果是否正4 B( l7 a3 Y2 r5 B
确)。; A( @4 c' b) j9 R0 Z8 h. z
1
# t) j5 c0 h1 u# }) W: x0 X! @2
4 h" K/ S4 n) E+ i6 G3
- J7 O% U- A6 E( m如何下载?. [" h8 T/ ?7 p6 L
- p1 C. Z8 t+ wpostman的官方网址' F5 q$ A5 V6 t$ R, ?
' K) T% V, Y6 j7 k5 O' g进入官网后点击右上角的download。1 h+ H& t% D" I2 s4 w
1 D; t( l1 x. Q+ M0 _; c( r; R) q
) @) t6 I0 _! l1 R# o
[color=rgba(0, 0, 0, 0.74902)]继续download。6 |: G/ B* _6 w
& n# _9 y8 l9 L& n* w4 n+ U0 d' K
[color=rgba(0, 0, 0, 0.74902)]根据自己的操作系统选择相应的版本。
+ u% N5 L+ X& }0 X+ w
0 E8 P; J7 ?/ p \- }
- 选择相应的下载位置。我推荐桌面安装时比较方便。(此时下载的安装包,没必要在意下载的位置。安装完删除即可)' c9 z! q; |( _4 G8 H5 }6 _: y
8 N' G+ k b8 L( a) g0 {5 r
4. 然后打开安装包。由于小白已经安装过了,不能再次安装。所以安装的过程小白就不多做解释了,和咱们下载一个qq,微信差不多。安装位置推荐换成除C盘以外的其它盘。这是个好习惯。不过软件不大,安装在C盘也无伤大雅。对了,下载完成后就可以把安装包删除了。
' W$ b/ Y) H6 g9 j8 a0 U
5 f: \4 _9 R; Z' x" r! f+ d
如何使用postman测试接口考虑到你可能和当时的小白不知道项目的url地址怎么写,于是补充来了:项目的url地址是什么?
强调一点:在使用postman测试接口时一定要先将你的idea运行,不然发送请求后只有404。(第一次使用时,很容易犯这个错误)。
上图是postman大致的位置的解释。8 [8 w# l4 {) p' i
) S" h1 W, l4 N& H0 v' {
使用postman测试接口常用的大致分为两种; p% `# C' ^: ~# U" m" x+ b
8 i6 e2 ]! ~$ u. m0 j! R, L/ I通过参数的形式向后端传的值后然后在postman测试, M7 h1 i# E7 ~; H1 G$ s+ r
Servlet代码
( R6 _& Q9 V$ S
. s2 r/ A/ Y7 E5 }3 X; \3 U下面的代码的功能是获取postman向后端传的两个参数(“id”和“username”)。然后使用获得的这两个参数的. f" [# v; `$ b2 E( Y2 e/ E
值输出对应的数据。至于对获得的参数的具体的操作,这个因需求不同而不同,小白在这里就不粘出自己相应" P1 s$ J( f; _8 k% `1 z' e
的代码了。
- n( R' s2 H, F# @. G1
; v4 i/ B6 D" M( W* v2+ Q5 e* S) } v, ]9 ]
3
5 B/ `' n. k) `4 m3 h8 E4 b1 Himport com.dao.JdbcController;( |& _# y; B9 R% I3 M `
import com.dao.QueryOutput;
; Q. B9 o+ o! q0 X P X ]+ Pimport com.util.Json.ChangeJson;' E Z2 h- ~5 u+ H3 q9 E, D) f1 K
7 k( O) N% l7 z- n4 I: {1 Y1 G' gimport javax.servlet.ServletException;: m, K7 \0 [0 X8 B
import javax.servlet.annotation.WebServlet;
3 m4 q6 D, q/ F# \import javax.servlet.http.HttpServlet;
; ?2 t% ?9 }7 u" u2 w, Z+ Ximport javax.servlet.http.HttpServletRequest;
5 X6 I, I; j' }import javax.servlet.http.HttpServletResponse;
) l) G8 S9 I8 o, k) ]import java.io.IOException;
9 X8 u! R/ P' {) Q3 C! t# fimport java.io.PrintWriter;
% A+ [5 e( R( _* I7 v0 @9 X$ M4 Q1 ^2 ?# w3 `0 B1 V5 p
% m& P& l2 M" [5 z8 q) n
/**
& F4 _' C; E$ i; [% d' e+ R$ P * Servlet类4 X# W+ }( N9 I5 J. S" r6 H2 i! U
* @Author 10593
9 @) x! \0 F' Q7 A8 J7 R/ a */
: Q' b+ r' D3 W2 L( g1 p! g# f d' x7 M6 W g8 t3 w" u
@WebServlet("/Servlet2")( c3 T$ b& h9 F) ]0 U5 W1 L4 z. ^
public class Servlet2 extends HttpServlet {
: o2 l2 O8 V8 e3 b /**
4 M6 A. M6 T3 T; y) a% j ^ * doPost方法:
6 F/ b- |* [6 y- a/ `/ y ^ * @param request
k, k5 f) I; f * @param response
0 i! c6 ^ i: k * @throws ServletException
" h7 ^/ D: w' h' o8 b * @throws IOException! [6 E# q7 g( a! k6 |5 F( J& x2 F
*/
, S8 G: z) S9 g, R7 Q
6 E* |3 i: y' y1 G @Override5 p0 I e' g+ L T/ Z/ {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {& Q$ p# u- [! L: `
// 响应参数格式设置+ ?! r) t/ q; j# ]$ ~7 [
response.setCharacterEncoding("UTF-8");6 j! J4 A; C* q5 b6 v5 S
response.setContentType("text/html;charset=UTF-8");
: b! m* d# Q# s: D5 _; [8 _4 k5 w- ~
//向外传值,并将数据转化为json格式保存在一个字符串对象里
! j) @9 w2 v' t, L5 u JdbcController jdbcController = new JdbcController();; n& o; m- s! s+ ?' P {! D
ChangeJson changeJson = new ChangeJson();$ J+ H% ?9 k: M4 Y0 l. E
6 j: t) j. w& J7 z2 u //将此字符串对象输出) R$ k3 p# X) I" c* _% W4 g8 w
PrintWriter out=response.getWriter();
2 l3 ?- k {- l) ? z% {' k
* e8 s( P4 h) f String str1 = request.getParameter("id");
! b! H& E/ B+ A; ^' K String str2 = request.getParameter("p_headline");
7 C+ e+ p3 A! p8 |6 k& w% R4 U* G3 j
if (str1 != null || str2 != null) {/ x" }) l, m& {+ Z
//将获得String类型的变量转化为int类型
# Y2 g3 a8 h2 t2 r int str3 = Integer.parseInt(str1);( i: {- m: ~5 ~3 F' f3 [9 \
% _/ g3 `+ p5 V7 z7 M: K4 L$ d8 Y QueryOutput queryOutput = new QueryOutput();
6 ^; u- w5 ^2 h, D4 @' K String str4 = changeJson.ChangeJson(queryOutput.QueryOutput(str3, str2));: U u1 _- Y5 c* h: z' T' T0 h
out.println(str4);
+ k4 Z! o( `1 p- e7 @ out.flush();; h" Q& B) e9 |& d& N8 w! f
out.close();. T, M0 _, e* H8 }; t9 s R2 C
} else {
. \4 y" m, j0 K* s* T7 ^ out.println("您未传入参数");% c N* p0 V, u- V- a! e
out.flush();
! A6 M d. b7 U5 J9 C out.close(); t8 H" u% B$ q. |
}
3 A7 H3 o+ r/ w* h! I1 a3 I9 y+ O1 k
}7 w, @5 Y. M, }, l& R
' t' ~4 R' y5 Z- m /**1 d" n' r: W/ j: {
* doGet方法:
3 m% D- Q; m) X8 p# I( @7 F* O * 转到doPost方法。/ Q% }0 B" ?3 J/ V& N$ _2 V8 W: l
* @param request
( X$ A% o% ~. Y * @param response) Z q. b+ S" J o
* @throws ServletException
. Z! [. S- R8 V7 p/ j/ f * @throws IOException$ i5 l+ l M) E5 U* A
*/
+ P: y- d8 F+ E9 n
; Q6 J* p1 w) x @Override
2 I m* ~$ K" y/ I9 A7 E0 k4 V protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
9 Y1 R: }! M; P. u2 u& f$ p //当调用get方式请求时,会自动转为调用dopost方法
$ i1 s" C; h& U5 n8 t( U5 t+ V doPost(request,response);
; d( U" M0 ?& _9 Y i# p4 D( I }" \$ N: q+ m4 {' E% w
}
8 M j/ G/ c2 `/ |" X
) H/ f7 `. O3 x* [/ E
3 [: I2 G( ^/ t" p1' j8 ?& _5 N- E$ d
25 m% M+ f9 s' ~7 _7 K; G/ [- S. J
3
6 e3 Q. u N) W9 B; A0 \4
) O1 v* S/ a2 B) ^5
3 S" f5 M z. ?) _$ _. n! O& S* a68 }' Q2 W0 S# I, t
7
$ b% Z: L" w/ G- B$ b, H) j2 B8
1 @( Y( ~& d( ?' c6 ^5 F# W9
, O# N# X7 ]) p- n* X, f10
% i$ P; E# x A( Y11, e# F* U. s3 e9 F
12. ]) Y/ m3 X* G, X! D
13: y4 P: Z& O: L; b% [
14
. @: V, [$ y, H( R5 U% \15
9 P# K0 [4 w7 _2 K9 C16( c% m1 s' F. h
17
7 J' o8 K6 S; m5 @. [3 h) \& N18
3 Z/ H7 I! H8 X' D4 V% R19' X1 G+ Y! x$ [1 f
20+ Z* N7 |3 L0 \( v
21% }9 e) T; G5 ` a& i/ L! E
22
, \5 a$ J3 j2 [23
) V! z' A/ @) Q' W24* x& f2 O- J9 E+ u6 \9 P k6 ~# W
25
2 x+ W8 g# J3 t) a26, x9 c- G' Q( d4 ?$ b! i
27* e+ Q9 N9 }1 M- F, ~8 w
28
3 G3 a# I1 U" f6 |& `29
4 O3 `1 a4 R0 _# s30) ~* m* C7 Z% r
31, D/ p- l4 ]8 |; t2 K/ l5 _; c: g
32
% t) K7 I. o$ y1 w2 H33
1 O- v0 u0 c6 z9 m% }348 U8 h/ X S. Y" O) b
352 T8 N H1 P' H8 n
36( K/ M- M4 F# ?9 C5 i0 H
37
! X: V1 ]/ r. p: Z38) a$ m" k2 l' W& D
39
% T4 b% Q+ r7 Z" M/ E6 }40
" z2 u+ E1 D& z. S$ G: E% O9 A B413 w+ B H, U& `2 q- T: ?( D$ y
42
% ~& \3 I' J) @6 |* `3 R43
3 b- U# [4 i$ n' y5 N) f& Z) D44+ t" W9 g: m( L( | H! j0 o
45
[# j! Z3 x% W; x461 u9 a2 Q" Y8 _' T6 h' a4 q
479 }% { q" | O/ R' C) r
48+ {# n/ I; E, I! h. h: P
49% W3 n+ G' h m- l1 R
50
5 f$ [5 [, J5 s" I2 W) t51
2 U9 e7 a* ]2 T' {: o7 F5 [ D$ p! s4 \52& D2 z$ k' `9 r! R
53
0 y! m0 k$ S; g- @% ]54+ P# _7 P# J+ J: a5 z/ ?* y
55+ m+ G0 w7 y* N5 @
56
; D- J0 S9 g' T2 \9 ?' [570 Z( z# g2 l% ~0 m1 O2 E
58 |2 Y. b0 O5 p$ b
59
2 H8 y- x% ^, _7 t60
( i4 M; T$ W$ O61
& D5 q, d" b. K& M62
* R8 y5 F, g) {63# U5 E, n. n$ A: p* i2 b7 }
64
+ Q5 Q2 @' G2 y; b3 C8 k65
" ^5 n% S6 a1 {66, z9 @! D' e, o1 F, l+ K* J
67
- ]/ {% h: d/ X686 f( j" E, s8 y/ m. H) M
69
3 d- c& H5 m4 a6 ?' v70+ J- f% e3 Y$ v$ N! A) y% z
71 @3 I f5 u2 B/ i# h
720 V% W* Y7 F+ \ b
73
8 o I) B2 e2 c74) k. P$ ~ @0 B& W$ v
75 ~% E3 J( J. m. h6 p
769 W- g% D2 Y2 A' i6 n4 e- l
77
, A; F9 I! x4 ]' _& _786 h! G6 C0 A! g! J! }: Q4 z
然后使用postman来测试这个接口。( W" ~0 y* K6 {# q3 k
; \% i; c* \0 b0 ]$ r8 ~) u1)在对应的位置输入你要传入的参数和值,还有URL地址以及你的请求方式
3 C+ P# u' c; B注意此时是未将参数勾选的url地址项目的url地址是什么?
/ }' ~. v$ v% `; U% L
! q. f0 g4 t* S% W% R
2)点击send就可以传出相应的参数值$ U Z3 T3 _4 \7 ^5 {8 U
Q) }3 p. X+ t& x4 v- l. A. R2 I0 J
' e$ d7 J: \, O. p
通过流的形式向后端传值然后在postman测试。
; n$ y$ p+ r8 V+ \' d: m, a8 [Servlet的代码: I( N& c- \% `" ^3 c1 }
+ n5 v3 e5 F: \- `/ w0 e注:由于本篇博文只是为了讲解postman的使用方法。所以Servlet源码中并未对从请求流中获得的json数据进行转化和操作,相关方面的使用和操作详见我的另一篇博文:Java如何处理前端传来的json格式的数据并将它转化为相应的对象,然后进行使用$ B% C" v: V+ k. B; Y7 Q
$ S3 c0 I# ]7 P& Q@WebServlet("/Servlet")
$ r; T, c$ C) z9 L: ipublic class Servlet extends HttpServlet {- Q" N, [) ]! m$ C0 p" t
@Override
. g9 f4 i* a, \- v3 `: _ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
" m! J) m$ `' ]! Z4 R& K z( @( v! n# m a p4 U% k
// 响应参数格式设置: O2 v6 k. }! ?- ?2 x
response.setCharacterEncoding("UTF-8");
" T" E/ Q, v! G# ~; p$ L response.setContentType("text/html;charset=UTF-8");0 L. W4 ~# g; q& R! B" c& Z& [- F
$ D% L1 | Q+ B( I! J3 p
! [2 {0 \5 Z2 g, s% n+ } //将此字符串对象输出
/ q. M9 Q" k7 v PrintWriter out=response.getWriter();
! q9 C) D( i5 @. U0 S2 A; [7 C
. F- @8 U( c4 @' N* A5 O: v- R* w8 l6 H7 q' ?) ?/ \
//使用InputStreamReader对象,获取前端传来的数据.其中& t6 }& B/ R2 G4 E# T/ }0 Q: O* y
// request.getInputStream()是读取前端传递来的数据字节流,; s* P. d5 t% L: b/ |7 ~! v) W& ?
// StandardCharsets.UTF_8是将前端传来的数据转化为UTF-8的编码方式
3 n1 L, p% Y2 f) [. } InputStreamReader insr = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8);2 m1 u$ f% A3 [9 c! V" ]6 B
StringBuilder body = new StringBuilder();9 P6 n/ R6 t- X: K& [% ]
int respInt = insr.read();
( j$ @8 _& C2 t7 ^' x) M while(respInt!=-1) { // 读取请求数据" L' O4 ~$ i, T
//将读取的字节流中的每一个字节转化为字符,然后添加到StringBuilder类型的对象中
9 E+ o! n. Q2 C% y body.append((char) respInt);
# D! A( @ k* {; k/ f* A respInt = insr.read();* i+ V; M L6 Q" X
}
3 H2 f; t- ~' r |6 b: Q* z2 |
7 w# r* Y6 n+ g8 `" M! b+ M1 d+ I0 c$ ] @" D" x& X
//out的print方法可以输出对象
$ d- s3 ]9 i! S0 k; y out.print(body.toString);: B" i- @ R& o, i3 R
9 _2 u* S* u) g
}! C; }. d+ X' w+ o+ n* C! ?
17 P0 ]+ G7 D: W% v+ [
2
0 V4 I( I6 s- V3, m M- c+ ~- p! W$ M
48 Z( k: B2 x; c. p" v- C
5# G x& M, U Z3 V5 c* B
6 U. _" u N) }
7
$ x) g3 P; h5 v8
?% F% ?/ P8 z; K9 \% f* U9
6 a9 m3 z! J8 S5 \5 y2 ?10. K8 T i; B) N
111 @& _/ ]) [7 r
12+ S' ?$ i1 q, X }
137 ~ L" ?" r7 p# \; X0 u) w: W
14
: z! p; @& D- [; [' U/ d; P15; R- `$ ~, _$ f9 t* m
16
, P& y2 B" Y3 F/ {17; Q3 S0 @! T( w* U$ u2 L
18
! q7 w# b: U9 `' u0 |" A19$ C; e. I+ K; M( s- \
20
+ W% H# { L8 o' i1 W$ s21
6 b" c% y; w0 k9 b, L0 H3 W221 m, ~+ h/ ]' Z/ Z% t
23
8 e8 I M% c$ T1 [# r; G246 P: v- J5 j- {. s. I
25/ m8 ]4 W2 q7 k9 L" J1 o
26
3 u& z% [: G- n) A1 F( O& k27
( \3 Q$ F1 a7 `286 K2 ^6 S6 a% x
29
1 Y7 O, M4 a# O1 P0 I8 `) ` }# B: `30. I( U3 r N( ]4 c' c5 w5 N8 C, P. t; m0 V
31
1 d) T) b' U( k; L$ a- j! L% ]body中的raw
+ @5 v- \+ N- f3 r4 j7 q( B$ G6 M% |
然后使用postman来测试3 t. r+ P. }8 w$ P( f, {0 d/ n' z
- s2 P7 f2 G0 y: b$ e1)首先填写你的url地址项目的url地址是什么?和你的请求方式
" W. J0 c: E& {/ o; K, r: K
) x- u5 h8 r! o# A! B
0 d; Z3 O/ K5 o) |
4 g2 ]& `' z& {$ e+ e5 w' U5 ?: j5 I
5 I! v" B9 s. b3 [你的Servlet路径
4 E A9 _0 f8 j) w8 @7 ^这里分两种情况:
?- K# w! P* E+ `- ^) l3 y r1)如果你是使用的下面这种部署Serlvet的方式,那么你的Servelt路径就是双引号中的内容。4 H6 O& ]/ N" x8 p' W
% x% c! Q8 u6 n$ L @WebServlet("/Servlet2")
+ I) X/ F6 i; Y' j: @8 J& i; T10 R7 f/ L8 k2 C' o# @! @ k
2)如果你使用的web.xml的部署方式,那么你的Servlet路径就是下图所示的位置。; K" }3 O5 _3 a0 d$ \" @* k; i) E
' `' D; Q* I0 q6 T7 T
, L) F( R* I5 x+ s' y d0 |; ?
————————————————' _" s$ {& v( k
版权声明:本文为CSDN博主「小康小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
J" M2 y# {# i( g3 C3 E8 r, s原文链接:https://blog.csdn.net/weixin_45791445/article/details/106228736* f- u% w8 A5 |1 e: n# S/ Q
$ W `% i" V0 H3 e/ I# _$ Z' ? q |
9 D7 F% S4 @) ~1 Y: p/ A
作者: chace 时间: 2020-5-21 09:24
感谢分享' J p4 r ]! s4 C( Z
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |