2016-10-26 3 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] 

편집 : 요청에서 Origin 값을 얻으려면은 위의 작동하지 않습니다, 그러나 이것은해야

마지막으로 내가 답을 찾을
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

, 내가 알고하지 마십시오 가장 좋은 방법입니다.

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"] 
관련 문제