|
% K' _6 ~4 V e0 i
前言curl 是常用的命令行工具,用来请求 Web 服务器它的功能很强大,熟练使用的话,可以代替postman等工具,在Linux运维环境中尤其的方便GETcurl发送get请求非常简单,如下curl http://helloworld/service-item/1。
% ~! T$ p$ [8 L. }! k y 上面命令向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":"长沙海底世界猪猪侠很厉害"}}。
1 E- D3 Z0 c1 A3 Y8 P6 y 上面命令构成部分解释:-H "Content-Type: application/json" 添加请求头-X POST 标识这个请求是POST方式-d {"layerId":"8a8338e9740aef47eeee22740b11117b0001","feature":{"geom":{"type":"Point","coordinates":[60.29296875000001,34.46587602148495]},"name_cn":"长沙海底世界猪猪侠很厉害"}}
0 V) R ]# L ~ 这个POST请求的请求体需要注意的问题:curl命令必须是一行的,不能换行,否则在命令行中执行会报错例如上面的的请求,如果写成如下形式是无法执行POST请求的curl http://10.3.xxx.xxx/geodataedit/api/cccc/create?app_key=ac90d6eeeeee1cb3470589e470e42f9a2b28& u4 ]$ T4 `5 I1 U, x: Q2 f
-X POST
- c4 Z+ [) u5 e -d {! k( _ I1 k" ~! B5 @ S. `
"layerId": "8a8338e9740aef47eeews01740b11117b0001",7 n& t% e. d7 {* X; a o* U
"feature": {
; f* g; `9 b' b: k1 y "geom": {
* ~2 H- V1 |/ I. I "type": "Point",9 Y* N S* D1 O! Q" J
"coordinates":% `1 i+ R1 F) q( D% B# @4 Q, C
[60.29296875000001, 34.46587602148495]
. u8 S& k; O/ {9 P8 P. k9 h9 t4 e* j. q: w. }$ H% |) _
},
2 B! b4 w7 k' R1 j a "name_cn":"长沙海底世界猪猪侠很厉害"
; c9 H% ]( A$ E1 K+ v* n }8 U: c* C C+ F: P! r0 ?
}。 ; g4 |0 p) L/ |5 R: W
必须要放在一行中,此时就需要把-d 后面的json 数据压缩成一行了那么如何压缩json数据变成一行呢?比较直接的办法是自己在文本编辑器中编辑,去除掉空格和换行符,但是这种方法效率低下,不建议我自己找到了一种目前来看比较好的办法,就是。 + r, ?8 ? s/ ^
打开浏览器---》打开控制台----》控制台中新建变量var obj = ---》执行JSON.stringify(obj); 然后拷贝输出来的字符串内容 ,该字符串内容就是压缩后的json数据了
- y! `( G1 E9 A
6 s/ Y3 r+ \. f. F& ?
6 ?# T' C. S: c& K& `
) j I. z' h2 G: i1 q
& h6 w* S7 A7 w4 @8 ^( d, P, } |