2016-10-26 9 views
2

revelでPOSTリクエストのパラメータを取得するにはどうすればよいですか?私はこれを持っています:revelゴランでPOSTパラメータを取得する方法

私は多くのことをテストしましたが、何も働かないので、できるだけコードをきれいにすることをお勧めします。これは出力です:

&{map[Origin:[LHR] Destination:[DME] DepartureDate:[2016-10-31] ArrivalDate:[]] map[] map[] map[] map[Origin:[LHR] Destination:[DME] DepartureDate:[2016-10-31] ArrivalDate:[]] map[] []} 

内容は良いですが、どうすればこれらの変数とその値を得ることができますか?
ありがとうございます。

答えて

0

すべてが単なるマップであり、すべての値はスライスにあります。

c.Params["Origin"][0] 

EDIT:は上記動作しませんが、これは必要があります。それならば

c.Params.Get("Origin") 
+0

感謝を@TheHippoが、私はこのエラーを取得:囲碁コードアプリ/コントローラ/アプリを。 go:コンパイルしません:無効な操作:c.Controller.Params ["Origin"](type * revel.Paramsはインデックス処理をサポートしていません) –

+0

@EloyFernándezFrancoあなたは正しいです。これを回避する別の方法があります。私の答えを編集しました。 – TheHippo

+0

もう一度@TheHippoはい...あなたの編集したコードが動作します...今質問はどのように優れていますか(速く、安全な...)??関数(c.Params.Get( "Origin"))または "オブジェクト"(c.Request.Form ["Origin"] [0])の検査と索引付け... –

-1

最後に、私は答えを見つける、私は知らない要求からOrigin値を取得するには最善の方法です。

fmt.Println(c.Request.Form["Origin"][0]) 

出力はLHRです:ステップthis postによってフォローステップの後、私は解決策を見つけます。

0

ご要望のContent-Typeapplication/json/text/jsonに設定されているかどうかによって異なります。もしそうなら、あなたは明示的にマップに変換する必要があります。

var j map[string]interface{} 
c.Params.BindJSON(&j) 
origin := j["Origin"] // etc. 

それ以外の場合、この作業をする必要があります:

origin := c.Params.Form["Origin"] 
関連する問題