|
, o2 |2 N. E9 S0 N$ u8 i( | 前言curl 是常用的命令行工具,用来请求 Web 服务器它的功能很强大,熟练使用的话,可以代替postman等工具,在Linux运维环境中尤其的方便GETcurl发送get请求非常简单,如下curl http://helloworld/service-item/1。
$ V# L8 B% n1 J' P5 a 上面命令向http://helloworld/service-item/1发出 GET 请求,服务器返回的内容会在命令行输出POSTcurl发送POST请求也比较简单,如下curl http://10.3.xxx.xxx/cccc/api/feature-xxx/create?app_key=ac90d6ee1cb347ddd42f9a2b28 -H "Content-Type: application/json" -X POST -d {"layerId":"8a8338e9740aef47eeee22740b11117b0001","feature":{"geom":{"type":"Point","coordinates":[60.29296875000001,34.46587602148495]},"name_cn":"长沙海底世界猪猪侠很厉害"}}。 * `3 t% [# o5 o! ^
上面命令构成部分解释:-H "Content-Type: application/json" 添加请求头-X POST 标识这个请求是POST方式-d {"layerId":"8a8338e9740aef47eeee22740b11117b0001","feature":{"geom":{"type":"Point","coordinates":[60.29296875000001,34.46587602148495]},"name_cn":"长沙海底世界猪猪侠很厉害"}}
) j( a: {! @# x( h! `% e 这个POST请求的请求体需要注意的问题:curl命令必须是一行的,不能换行,否则在命令行中执行会报错例如上面的的请求,如果写成如下形式是无法执行POST请求的curl http://10.3.xxx.xxx/geodataedit/api/cccc/create?app_key=ac90d6eeeeee1cb3470589e470e42f9a2b28. u Z, _) {% L3 n1 d
-X POST( c( i) O" n! v
-d {
4 I6 ?% e0 w* W "layerId": "8a8338e9740aef47eeews01740b11117b0001",
0 s1 U) K0 D& _5 }$ c0 I3 s "feature": {9 H* c1 Y5 x/ q& o( C! X
"geom": {
% i; A d* ^: U; Z "type": "Point",
$ i0 l1 ~6 r' Z* {3 h3 R3 M4 L( G6 M "coordinates":6 [" _2 A, p7 E9 X& C
[60.29296875000001, 34.46587602148495]6 o" S5 N! f9 a, S' t9 O/ n
9 v9 z* V r6 i; y3 L; ` },7 M: a v: K% u4 `- ~
"name_cn":"长沙海底世界猪猪侠很厉害"
9 C2 ] U, V+ L5 E }7 [" s* ]) p' R' b
}。
% G6 H7 R/ ]8 h. F2 ]% _ 必须要放在一行中,此时就需要把-d 后面的json 数据压缩成一行了那么如何压缩json数据变成一行呢?比较直接的办法是自己在文本编辑器中编辑,去除掉空格和换行符,但是这种方法效率低下,不建议我自己找到了一种目前来看比较好的办法,就是。
/ t# u8 W- ?+ z: Y2 d 打开浏览器---》打开控制台----》控制台中新建变量var obj = ---》执行JSON.stringify(obj); 然后拷贝输出来的字符串内容 ,该字符串内容就是压缩后的json数据了
/ l; Y# S+ c) V1 J7 W# R# Q
8 n* w: M: N! ^
7 X; h/ ^' g5 J4 R9 c+ \6 n5 c) R( v7 u/ ?" j- ^. e
' a) I+ x4 t3 i8 e0 a |