2016-04-23 4 views
0

でテストクエリとPOSTゴージン-フレームワーク:私は<a href="https://github.com/gin-gonic/gin" rel="nofollow">the README of gin framework</a>( ":クエリ+投稿フォーム別の例"):でコード例をしようとしているのcURL

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を持つコード:

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

アンパサンド(&)は、シェル内の特殊文字です。前のコマンドがバックグラウンドで実行されます。

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 
:あなたの期待どおりの結果が得られます文字をエスケープ

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

:あなたのシェルはコマンドとして解釈されました

関連する問題