|
5 x5 F1 |% x9 y5 C" l4 Y: f6 f% v 前言curl 是常用的命令行工具,用来请求 Web 服务器它的功能很强大,熟练使用的话,可以代替postman等工具,在Linux运维环境中尤其的方便GETcurl发送get请求非常简单,如下curl http://helloworld/service-item/1。
6 R- a1 H1 L, u7 ^" \/ C' T 上面命令向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":"长沙海底世界猪猪侠很厉害"}}。 ! Z& i+ a7 O! V8 }: u
上面命令构成部分解释:-H "Content-Type: application/json" 添加请求头-X POST 标识这个请求是POST方式-d {"layerId":"8a8338e9740aef47eeee22740b11117b0001","feature":{"geom":{"type":"Point","coordinates":[60.29296875000001,34.46587602148495]},"name_cn":"长沙海底世界猪猪侠很厉害"}} # U W0 a% R$ y/ p8 H) U
这个POST请求的请求体需要注意的问题:curl命令必须是一行的,不能换行,否则在命令行中执行会报错例如上面的的请求,如果写成如下形式是无法执行POST请求的curl http://10.3.xxx.xxx/geodataedit/api/cccc/create?app_key=ac90d6eeeeee1cb3470589e470e42f9a2b28
3 N' w% _3 ?; H0 W1 F$ P -X POST2 T1 I2 q) }$ a0 }% U0 e% D
-d {9 h2 m' Y! _2 [( ~- `
"layerId": "8a8338e9740aef47eeews01740b11117b0001",
- d; Q% X& p9 a7 T, f# C "feature": {
/ j' T% t, q$ f8 Q; Q$ R3 \ "geom": {3 ~, S( U0 D( X# X, p; y
"type": "Point"," N( X* ?8 r* m- f& o5 A$ S
"coordinates":
8 X' o: q4 E( l# A* a [60.29296875000001, 34.46587602148495]- o; _$ B6 q* P5 K
) ^- X- u/ K- A% g },, D6 f4 n) x1 t# C- |
"name_cn":"长沙海底世界猪猪侠很厉害". n( Y0 l( l/ G( a/ r/ A
}
& f0 f) U' x* P/ s8 L4 X }。 " L9 ?. |( S+ k* v9 r1 b4 K# L `
必须要放在一行中,此时就需要把-d 后面的json 数据压缩成一行了那么如何压缩json数据变成一行呢?比较直接的办法是自己在文本编辑器中编辑,去除掉空格和换行符,但是这种方法效率低下,不建议我自己找到了一种目前来看比较好的办法,就是。
7 f* ~, Q" R5 \! P- D9 _) F! l 打开浏览器---》打开控制台----》控制台中新建变量var obj = ---》执行JSON.stringify(obj); 然后拷贝输出来的字符串内容 ,该字符串内容就是压缩后的json数据了
. f, f p4 C. @, A* g) W4 a, ?0 U- J6 Z! \. z; H
5 ~6 P6 a9 L% ^' `2 k& R" V$ U6 m4 g1 `% }+ K% U$ V
/ L- f! C- p. Z$ i |