|
$ S' F+ W2 V$ B) ]5 ^ g3 r/ J( S
前言curl 是常用的命令行工具,用来请求 Web 服务器它的功能很强大,熟练使用的话,可以代替postman等工具,在Linux运维环境中尤其的方便GETcurl发送get请求非常简单,如下curl http://helloworld/service-item/1。
8 I+ K" Q0 Q( G/ Q6 {' ~ 上面命令向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":"长沙海底世界猪猪侠很厉害"}}。 ) c% m8 J6 }7 e8 W: E
上面命令构成部分解释:-H "Content-Type: application/json" 添加请求头-X POST 标识这个请求是POST方式-d {"layerId":"8a8338e9740aef47eeee22740b11117b0001","feature":{"geom":{"type":"Point","coordinates":[60.29296875000001,34.46587602148495]},"name_cn":"长沙海底世界猪猪侠很厉害"}}
4 q: m3 l1 K3 [% B! u- _ 这个POST请求的请求体需要注意的问题:curl命令必须是一行的,不能换行,否则在命令行中执行会报错例如上面的的请求,如果写成如下形式是无法执行POST请求的curl http://10.3.xxx.xxx/geodataedit/api/cccc/create?app_key=ac90d6eeeeee1cb3470589e470e42f9a2b288 N# r5 K& q+ {( V6 b+ K
-X POST
0 s# }$ R* B1 x1 H% z, K -d {
Q2 J, T& D6 _& f$ L4 P) T "layerId": "8a8338e9740aef47eeews01740b11117b0001",
& @4 \) v# K; {4 J/ j "feature": {
/ A! Z/ I e% s) h! d1 z$ Z "geom": {" j( I) K( l. y M
"type": "Point",6 V% Z- q2 f6 F- Y- @( U/ s
"coordinates":4 d M! o$ Y: Y* ]( u5 Q
[60.29296875000001, 34.46587602148495], P d( q0 E$ G+ v5 @$ t& d; ]
$ ], @/ K* r% F! g0 u1 a. F
},0 O' C! ` X1 c# d' M( e
"name_cn":"长沙海底世界猪猪侠很厉害"
& m5 {$ i, `5 l4 i, r/ h) T! s1 ~ }
9 l# j7 Z5 O0 G9 \- A$ `2 I }。
) \ d$ z5 T0 Q7 w 必须要放在一行中,此时就需要把-d 后面的json 数据压缩成一行了那么如何压缩json数据变成一行呢?比较直接的办法是自己在文本编辑器中编辑,去除掉空格和换行符,但是这种方法效率低下,不建议我自己找到了一种目前来看比较好的办法,就是。
$ S% N5 }, N3 b, b' q# s 打开浏览器---》打开控制台----》控制台中新建变量var obj = ---》执行JSON.stringify(obj); 然后拷贝输出来的字符串内容 ,该字符串内容就是压缩后的json数据了 " v4 ]" N5 h2 r2 q6 h4 w3 M3 E6 M+ S
% ~3 W: ]- b+ j7 w' z7 Q/ B. c9 w. S
4 N- T$ z" f# @6 {% K1 l3 a7 ?4 V8 d( U( p1 F
% T, }( f2 ]8 G0 t" M! J% F
|