在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563416 点 威望 12 点 阅读权限 255 积分 174248 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用的详细教程)
5 l5 t! Q& d" ~' N& Z
) V1 }6 b* J! T# S/ \! M V( [ 目录:" v6 l# k2 e" s
postman是用来干什么的?
/ `: }, `1 @+ S! R* W 如何下载?2 v, z; B: k6 { n8 W6 J8 l
如何使用postman测试接口
% v5 |* B) @. V- g& H( M2 j
+ i6 D8 o F2 E: f( q& k 对于前后端对接小白也写了一篇博文:前后端(Java)对接的完整过程(小白第一次进行前后段对接,记录一下。希望对你有帮助)
& a4 ^1 u6 \" v : F, B' |8 @' \
postman是用来干什么的?
7 C2 L; A) o' D* a: P, s0 V- U Z! J ( o S' p2 T/ Q2 U! k! X9 g
当我们写完了自己的接口时,无法确定自己的接口是否正确就去与前端的兄弟们对接会引来很多不必要的麻烦。
6 S: F0 u0 v: D" s B4 {+ J 而postman就是用来解决这个问题---测试接口(测试我们后端Servelt中写出来的url地址的返回结果是否正
l# \& I. D1 s+ g$ B 确)。* k7 J& r* r4 N7 h/ C( A+ b) F
1
* |5 o' o8 A" E( }- r4 Z. r- J 2
9 A1 a, T! z9 T# y 3
0 e' Z6 F# E9 ?4 P0 V" }1 j 如何下载?* g2 |6 q5 e2 Y1 T7 g
: Q2 I/ e# }/ e8 E) t5 _/ d0 i postman的官方网址
+ c# ]8 _7 b* e% n! b 5 k+ b! s Y2 l2 S, P
进入官网后点击右上角的download。( N$ |( L6 C5 b' v3 J. b3 S
4 I; R( D# p8 x7 K4 N
4 X6 c( u8 Y- j1 N8 ]
[color=rgba(0, 0, 0, 0.74902)]继续download。 % t7 ~: h0 u8 @8 n+ ?/ w$ |
+ W5 s- R! C6 L# }' r+ |
[color=rgba(0, 0, 0, 0.74902)]根据自己的操作系统选择相应的版本。 - h( g1 i0 H- Y) s6 E6 K( x
9 p) G* `3 w* h8 r& I$ j; g
选择相应的下载位置。我推荐桌面安装时比较方便。(此时下载的安装包,没必要在意下载的位置。安装完删除即可)
1 r: t$ b2 W$ Y
0 }- q$ E, n6 f {3 a D2 a 4. 然后打开安装包。由于小白已经安装过了,不能再次安装。所以安装的过程小白就不多做解释了,和咱们下载一个qq,微信差不多。安装位置推荐换成除C盘以外的其它盘。这是个好习惯。不过软件不大,安装在C盘也无伤大雅。对了,下载完成后就可以把安装包删除了。
0 p3 C- k1 x# L1 x: o' R% c
4 T0 j! v; _+ l" J 如何使用postman测试接口 考虑到你可能和当时的小白不知道项目的url地址怎么写,于是补充来了:项目的url地址是什么?
强调一点:在使用postman测试接口时一定要先将你的idea运行,不然发送请求后只有404。(第一次使用时,很容易犯这个错误)。
上图是postman大致的位置的解释。3 ]! l) Q5 e: _! g7 e0 I9 Z
' r2 K+ T0 V* b5 G, t, ?2 L
使用postman测试接口常用的大致分为两种
8 I) e0 N# P! B1 } ( x9 x, D* T) R* y; ?/ G3 |: A
通过参数的形式向后端传的值后然后在postman测试, X3 m& c" j# }+ \+ W# D
Servlet代码
- ^7 V6 Q& a; ^' ~9 T9 q4 J
4 ]+ k7 H" J% K6 `6 d( L) H 下面的代码的功能是获取postman向后端传的两个参数(“id”和“username”)。然后使用获得的这两个参数的. G. r7 B# o" c, b
值输出对应的数据。至于对获得的参数的具体的操作,这个因需求不同而不同,小白在这里就不粘出自己相应" m3 N3 A3 [* I8 E
的代码了。
6 _/ C/ Y& V' C9 }' Q 17 h# S& H2 Y/ Q4 ~ v. d
2
* J9 }+ @) o! n- [. ]$ ]& q' ? 3; `) L8 e4 ^+ R# r
import com.dao.JdbcController;
6 T- b% t; {: Z1 w5 k import com.dao.QueryOutput;
/ q4 m7 ]* s: p* t9 c# E import com.util.Json.ChangeJson;
2 _( E; B) S5 v3 _! O ( s$ S6 O {( n& i0 ~+ ?
import javax.servlet.ServletException;. T' t B2 G9 A
import javax.servlet.annotation.WebServlet;
* Q: s2 ^8 @, Z. ~5 R import javax.servlet.http.HttpServlet;( e! m" ?( W% y% ~. I
import javax.servlet.http.HttpServletRequest;4 c& U7 q7 ?: O$ a+ Z& s. j! D
import javax.servlet.http.HttpServletResponse;
5 S' n4 w9 X* k8 \; @ import java.io.IOException;; ~: d* r& c" l8 p
import java.io.PrintWriter;/ _9 z5 G5 z2 }, U, \
, h7 n6 I! F+ C" {* W2 \! E9 t# [ ( N9 n* D. Q* H! q2 v
/**- X P, c1 v0 b* a( E% h
* Servlet类1 {1 f W0 q9 v1 [. E- n7 A, g
* @Author 10593
9 b4 `. [! T f6 t# `; C$ b* J& a */: o2 y7 u5 J# x- Q# p H
* a0 _9 ~9 }4 {$ q* o @WebServlet("/Servlet2")
8 {9 u) ^6 I4 s. Q; Z public class Servlet2 extends HttpServlet {- m) \* E+ {" S; I
/**; q/ H2 `) Q) ]2 V$ P+ J2 V
* doPost方法:
: {: z* ]( s; D% D/ s- W, j! \+ T * @param request
% W# L$ M- ?' C: P, _ * @param response% J; [# ~: Q" g7 T, U
* @throws ServletException$ d/ z/ B; G% p j _- F% v% s# z; M
* @throws IOException
/ {& x! I3 D9 r4 v */
9 E6 u1 C. Z/ D7 C1 V2 d9 k; U
: J. K6 L8 g9 K/ S9 j# K9 p @Override+ Q* s6 X4 j- U& h6 ?9 M
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
8 j* M4 U8 p/ h6 C1 m // 响应参数格式设置
! ^! _' t# K6 A9 R% m. Y5 b, n response.setCharacterEncoding("UTF-8");( ]( g; x% R# d2 V
response.setContentType("text/html;charset=UTF-8");
6 k( j+ Q( x, T4 c! Z
" w3 W5 [! Y2 K3 c; ^% G3 z //向外传值,并将数据转化为json格式保存在一个字符串对象里# M& f3 o% E4 T, z
JdbcController jdbcController = new JdbcController();
# q* ^% w. D" Q7 `# r- M: Z% E ChangeJson changeJson = new ChangeJson();2 T+ [! V N9 E" X/ Q
$ j& w; K3 `+ i0 b, V //将此字符串对象输出2 s% @- v1 m! ?9 m) \/ K. O- o* J
PrintWriter out=response.getWriter();
5 w' L: u; B- d) L: h) e3 j5 k7 c# z 3 h7 v4 i2 N! p5 H& K; w
String str1 = request.getParameter("id"); b! }) u% y! ]4 f% `: w
String str2 = request.getParameter("p_headline");
3 ~+ _# G8 h1 o @& M ; D1 L' h7 @/ u/ Z' ?0 N- U0 R
if (str1 != null || str2 != null) {0 f3 ^3 o& c% Q0 p
//将获得String类型的变量转化为int类型
7 Y- B3 F( ]# t9 K8 L7 ~6 } int str3 = Integer.parseInt(str1);
* u& X: \9 F/ R$ Z
' d, x+ l9 n3 I1 o" } QueryOutput queryOutput = new QueryOutput();3 Q0 G* O1 V# ~) {% K
String str4 = changeJson.ChangeJson(queryOutput.QueryOutput(str3, str2));& Q8 a7 m; G m: L# V
out.println(str4);
, K9 I) F- j* h& }/ F. c6 q' B out.flush();
, O* i7 `( N6 ^; l- M8 ]6 y out.close();
/ r: H- X5 V, i2 P. s% I } else {
( P7 ?' V# G0 w! ]7 | out.println("您未传入参数");& y. ?9 `0 N2 {0 E' M7 Q
out.flush();
& q& `3 X# q7 z out.close();4 X& z. S, q% d7 g& m6 `6 q6 x# A% N" J
}
! t W; [' {' @: ~5 e% @2 z
5 R5 `& t' G1 B } }
3 D1 u& y4 W: I8 y " b* q- h; l! ^: A" N
/**
3 V! M7 b/ S" Z( ]: B U* ~ * doGet方法:, B( r ^4 y3 x8 Q6 K
* 转到doPost方法。1 \5 i% [; Q' v/ a2 g
* @param request
* `7 {" z# w- \8 _ * @param response5 Y2 U+ ?1 u+ o6 i$ P
* @throws ServletException
5 b$ h: s0 x ~ ]6 V' u# l; [ * @throws IOException8 Y' d" e+ z1 ]3 C0 r" L& {
*/
2 d! B( W* a" w( d1 z
( A r% I$ m. o. |! I @Override
c! \; [/ { f8 s) @$ @, o U* Y protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
% s) }2 p8 ], o$ b //当调用get方式请求时,会自动转为调用dopost方法) [0 C5 i* d M4 H% |1 ~
doPost(request,response);
, F) D& v, t2 Y- @+ H }1 k& r& s3 T8 L
}6 p; t; f9 v& H
0 [0 C, \9 W1 ]8 w+ _1 G/ T1 a
! h9 I: w0 n% y5 h+ J; }1 C 1
7 W; Y" U9 j& N$ N 2: W7 B4 @2 g7 Z Q9 c
3# [: e, o" Z; G" k5 D/ v- B* L* D3 V
4
* J/ o6 K, r* u% Z$ R. t# x2 b 59 z! E4 E* b) K
60 v$ C8 h2 b0 g( L4 t4 V
7
+ ~& c. ]$ M7 E1 v, G# e 8
$ X# l+ b& G$ V9 J: x 90 a5 _0 C7 T4 Z* Z& A
10
]1 k) {" ?- x$ U. T) X" g# K 11
7 B9 `0 }6 A; m5 |& h0 Y 12
7 \1 T. j, A5 r; F B 135 J# l" e0 |; x
14
0 s3 n# m' Y3 f) o 15
, L1 ~- y$ b; ] {1 V9 e* { 16
; F6 J6 k; l! M& n6 Y! _1 m4 U S 17
# n, G- m1 ^3 W* E# \+ Q 18
7 a- P2 v8 y8 c/ u! Y9 P 19. C/ G) H6 e* Q- }# b8 H
20: ^4 I8 ^& {& y' {9 n
21
% K+ y( L9 U! N! ?% L 22$ u& P- x) w3 e$ M4 w
23
. P) O" i9 A3 h# q2 [; Q5 n 24
/ b& e' V6 S2 D/ z3 T 25: w9 W. M) Y4 a& m/ F* w: @
26& o+ ]3 u+ ` q; n. A' d1 [0 @: a
27
/ p1 i2 c2 C% ]4 E: I/ I4 y 280 [+ S9 R" |5 _
293 p7 Q' h& |' k: s; M
30
$ z0 y" o/ y& _5 q3 Y H 31
4 c/ q9 x% D. }: Y8 p 32& F8 G$ n- h& a( R6 A; |' E6 S
33
, a2 f. z/ D! q( s7 u 348 b6 w: l- {" w+ k3 _
351 f7 i8 U0 z2 ?/ u2 t4 C8 b
36/ B; x- i6 Y6 j; }$ V
37
" H* f. c# o7 q5 v 38( d! t! O% E. `$ F* I) [2 M
39+ X$ {% Z" K/ l$ J
40
) k: }$ c( x6 N% G. n. x8 a 41
- I6 p! v2 h0 O* H9 N 42
$ \* P: s7 D' [& G, G/ H 430 p1 {1 ]2 i& I- X2 {1 y
44# r7 S1 I) ~6 E+ O& ^. g; W* j
45
4 B. r! e( C* [1 G7 e6 D 46
' D9 c* g5 x& C! r& a 47
2 _* l8 ]( S- @$ n* L 486 b b, J. ]5 I w
492 |5 c; \9 R" B4 K1 s
500 {( m& G4 Y' w/ |
51# d# f, L* L- a9 |0 e L! P8 N
52' |/ }9 Z+ h# k3 \' |
53
/ a' E" v# _7 q$ b5 k- g% r+ V ` 54
: } X/ \) I* `; R' n 55- {5 \/ f8 b4 c* S6 K+ n9 Y
56
# W2 D4 U' h3 I; c4 ^ 570 B& k8 F( b. a
58: P5 P& y5 W( n2 F, B
59 F4 _ X8 z. ~8 i
607 l) o4 f) ^/ q H- f I
61
. f. h8 a+ x5 _2 w* s 62
a+ T L$ w( p4 } 631 t* `9 R- a$ r
64" K( e7 q6 {/ A& @
65
. s6 D0 x8 l# [; _4 E8 g 66
9 X1 c8 S. \3 S: }6 Y% E2 G 67
& r. Q. ~/ L. A2 ]# m# N 689 F$ z s! I, D* X# A
69' C8 o( q0 _7 ^% W b& s
70
/ l, J; e4 o; L! R8 ?; R/ T 71. }2 Q. A6 n. R$ m
72. g7 I H1 c2 K* ?) Y, t+ @5 _
730 {" b; e# | K0 L7 P
74& K& t! B* K! v6 H% q5 t
75
) u; Z6 K2 K! n0 a9 y H8 | 764 [ {: h6 M z0 A0 H, D2 f8 D- S
773 j! V1 C! R7 j- x* B% q1 w9 A
78; T$ I8 m3 h8 Y/ C4 a/ i6 R- c1 `
然后使用postman来测试这个接口。/ L" q) ^# U" D3 U8 J# w7 g+ X/ R
, v6 ]' o0 X" Y' J3 X
1)在对应的位置输入你要传入的参数和值,还有URL地址以及你的请求方式- |5 v/ F5 v- @# D1 J9 o; n, L K
注意此时是未将参数勾选的url地址项目的url地址是什么?
# l! m& I- t: a2 q9 S; w, i% h
. b1 b. L& t1 }! L9 \
2)点击send就可以传出相应的参数值
4 J5 U( L z" K; ` 9 i2 n( \. J# a3 j5 N$ O0 Y- ]
" S2 L5 _' [& Z3 u
通过流的形式向后端传值然后在postman测试。0 y6 c& ?5 S) k, R) ^& ^
Servlet的代码( H) m9 _5 j/ S( v# ~6 I
3 o: I, ?( Q) \
注:由于本篇博文只是为了讲解postman的使用方法。所以Servlet源码中并未对从请求流中获得的json数据进行转化和操作,相关方面的使用和操作详见我的另一篇博文:Java如何处理前端传来的json格式的数据并将它转化为相应的对象,然后进行使用) d. w; D% Z' ]+ U8 \
. L+ R7 B% S2 z# b
@WebServlet("/Servlet")( L$ k( D7 Y$ j0 V, E0 _* d4 n
public class Servlet extends HttpServlet {
) n* i1 s8 S& n3 j( O @Override
; c/ i5 r, x# r8 `4 f6 ~+ R2 L protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {. M- Z) ]6 W" D5 N7 I
- X% u$ C- y4 r/ ]* Y$ b. I // 响应参数格式设置3 l* ^- ^& J3 m$ }) m! x
response.setCharacterEncoding("UTF-8");
% D( p; B0 v" v1 A5 p& H$ R( q' u0 c& E response.setContentType("text/html;charset=UTF-8");
5 Z) |6 A' `# M
" d+ ?/ o& s. [- I. o8 k% D % @" c7 a: ]0 e' M; h5 Y
//将此字符串对象输出% O3 U# {, M7 t; V& h
PrintWriter out=response.getWriter();* p; ?4 q5 e* {) a
0 X) h$ |2 U7 c
$ d& l7 c" D8 c. H/ S4 P- w0 [$ \ //使用InputStreamReader对象,获取前端传来的数据.其中6 a$ e1 Z1 {" w0 {( p, A; d
// request.getInputStream()是读取前端传递来的数据字节流,3 e! G! m2 Y* u, u- X3 N. Y
// StandardCharsets.UTF_8是将前端传来的数据转化为UTF-8的编码方式
8 X J9 |' }# }) a1 T8 a8 C InputStreamReader insr = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8);0 [ J6 V$ W- z- G6 s
StringBuilder body = new StringBuilder();
- e) ~# z* C, ?7 x' m int respInt = insr.read();4 k" z7 \0 f/ [7 z$ {) W
while(respInt!=-1) { // 读取请求数据- G% [" G7 u: ~$ k
//将读取的字节流中的每一个字节转化为字符,然后添加到StringBuilder类型的对象中! D! T1 k) Z0 |4 k& {
body.append((char) respInt);4 d u: T% ~4 O: Q8 ?* a7 O% a: a- y! j
respInt = insr.read();
% F% W" X, M! i* h; ?8 {7 G } y' b6 M: C! {' F6 ?- M1 i
- X I3 @6 A7 z: d' ~$ L
6 [; c* V: W% f: S9 J //out的print方法可以输出对象- o2 W" l3 p2 O6 m$ Q4 t( _- w+ |
out.print(body.toString);
- Y# M+ b% C$ c 0 h% R& d/ U2 Y3 ?7 H6 p; ]
}
# B: _7 N! v7 g" u. G7 ` 1! \# U2 @; o1 N; Z2 {7 \/ [( ]
2, u' k$ z1 p" d5 c
3
; F, z4 `* g* ^" U+ l 4* d9 C9 {. j* U% h$ K5 Q
5; G+ M# j5 |6 b# p A
6' V. y5 M9 o* J3 @3 f! [
7* B/ e9 l$ E+ M% W2 y% T1 s3 k d
8 N) o4 _( Z2 N% D
9' \) ? x1 `3 x- b; _1 L
10
; W! |# q! [6 J- r* H+ J. X( J 11
1 `5 r+ E6 w- K! B& }6 ?9 W 12
" C* {+ Y# X! |+ f& I0 b' \" c 138 R- Y8 K& K& M
14
! t( V! D; f% q8 g6 w: S- \ 159 F! ~# ]" z; a) e+ f% X
16
8 _) D% Y# v$ x x1 W' ~/ r 17
5 y5 ~! Q3 N7 @$ Y& H. r 182 G9 [. C8 Y+ E) C$ e% l
19: {5 m1 K5 l# g+ O/ y- Y6 s
20, v, X* p/ c( U5 ~5 J2 O8 T
21& k. x8 O& n% n* v% |/ G
22
" w- V5 j$ Y q7 Y* P% K- L 23
W- ]. O% U3 J8 O/ _* N' N 24
) E8 v( o6 c+ z1 u2 L3 B% P 25
2 G3 F% \$ K2 K 26+ k, ?% X d) ?: [; k
27
5 i2 A1 W! J7 a( R \ 28+ P/ X* x, q: q$ P8 _: d
29
9 g% J! ]# T1 d! T. { 305 K& k7 g8 Q7 K0 r3 S: w) w }$ w7 ~( H1 p
31
1 l1 S* W; l1 \9 T1 a1 i, ]' E body中的raw
% V: u8 ^5 [7 T0 N$ _% f
4 F8 V; z" T( ^$ m; W( p' e0 y 然后使用postman来测试
3 M, @) @3 g/ G8 D' c+ B 9 R4 F7 M' }1 B9 L2 s3 C3 C
1)首先填写你的url地址项目的url地址是什么?和你的请求方式1 n; f+ X k4 E
$ i0 u9 @! M' M! f9 S
) W& O2 @: L4 [* ^
5 s( I0 y$ I' g( m& I8 H $ [+ j _0 ^% ~* F7 B* Y$ H
你的Servlet路径4 b5 e* O/ w& \4 z
这里分两种情况:- B% q0 v! x( f. H1 @
1)如果你是使用的下面这种部署Serlvet的方式,那么你的Servelt路径就是双引号中的内容。
% N9 w" L2 Z8 ^( h O- G) x5 y0 D2 f/ W! N
@WebServlet("/Servlet2")
/ y4 _- K% I% O& N& f 1* o4 q! H8 z- l8 v$ H& d$ c
2)如果你使用的web.xml的部署方式,那么你的Servlet路径就是下图所示的位置。
4 H8 `. p* i- Y3 l7 a- z7 K
1 M9 b+ ~$ n. E F0 c
t/ B) W, [) `$ s* w9 z/ d" t2 X$ ?: b ————————————————! o( q+ u& f$ s/ p$ r! k' |- {# O
版权声明:本文为CSDN博主「小康小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。! {3 n, y, N$ |* [# N; |# j, s
原文链接:https://blog.csdn.net/weixin_45791445/article/details/106228736) x( B+ P. f4 ^4 u
; F9 W7 z# Y, g- P P
* d) T, ^* `, k" z. B; X
zan