2016-04-23 27 views
0

我想在the README of gin framework一个代码示例(“又如:查询+岗位表”):转到杜松子酒的框架:测试查询和POST与卷曲

package main 

import (
    "fmt" 
    "github.com/gin-gonic/gin" 
) 

func main() { 
    router := gin.Default() 

    router.POST("/post", func(c *gin.Context) { 
     id := c.Query("id") 
     page := c.DefaultQuery("page", "0") 
     name := c.PostForm("name") 
     message := c.PostForm("message") 

     fmt.Printf("id: %s; page: %s; name: %s; message: %s\n", id, page, name, message) 
    }) 
    router.Run(":8080") 
} 

测试与卷曲代码:

curl -d "name=Maru&message=Nice" 0.0.0.0:8080/post?id=2&page=3 

服务器返回:id: 2; page: 0; name: Maru; message: Nice

卷曲测试是否正确?为什么返回值中的page等于3?

回答

0

&符号(&)是您shell中的特殊字符。它使前面的命令在后台运行。壳牌正在演绎的命令:

curl -d "name=Maru&message=Nice" 0.0.0.0:8080/post?id=2 & # run curl in the background 
page=3 # set page=3 

转义字符会给你预期的结果:

curl -d "name=Maru&message=Nice" "0.0.0.0:8080/post?id=2&page=3" 
curl -d "name=Maru&message=Nice" 0.0.0.0:8080/post?id=2\&page=3