11월, 2015의 게시물 표시

(Go) 웹서비스에 POST 요청으로 값 넘겨서 처리하기

import ( "net/http" "net/url" )   func reqPost () { postUrl := "http://example.com/test" values := make ( url . Values ) values . Set ( "name" , "HongGilDong" ) values . Set ( "age" , 31 ) req , _ := http . PostForm ( postUrl , values ) defer req . Body . Close () }

(beego) JSON Response 작성하기

샘플 코드 func ( c * HappeningController ) Get () { data := map [ string ] interface {}{ "test" : "test" , "num" : 2 3 , "array" : [] string { "one" , "two" }, } c . Data [ "json" ] = & data c . ServeJson () } 결과 { "test":"test", "number": 23, "array":["one", "two"] } 참고 https://groups.google.com/forum/#!topic/beego-framework/_PEwb0qLoJY http://beego.me/docs/mvc/controller/jsonxml.md https://github.com/astaxie/beego/blob/master/example/beeapi/controllers/default.go http://www.goinggo.net/2013/12/sample-web-application-using-beego-and.html

(beego) router 작성시 주의할 점

router 작성시에 하나의 컨트롤러에 여러  URL  을 매핑하는 경우,  urlfor  가 예측할 수 없을 정도로 비정상적으로 작동한다. 예를 들어, 다음과 같이 router 를 작성했다고 하자. ... beego.Router("/mgmt/user", &c_mgmt.UserController{}, "get:Index") beego.Router("/mgmt/user/:page", &c_mgmt.UserController{}, "get,post:Index") beego.Router("/mgmt/user/:page/:s_item/:val", &c_mgmt.UserController{}, "get:Index") ... View 의 템플릿에서 {{urlfor ""mgmt.UserController.Index" "1"}} 를 작성한 경우,  /mgmt/user/1  이 호출되어야 겠지만, 실제로는 전혀 다른 값이 호출된다는 것이다. 반면, URL을 호출한 경우에는 매핑된 컨트롤러가 제대로 실행된다. 그러므로, 정상적인 동작을 위해서는  URL  과 컨트롤러는 1:1 로 매핑해야 한다.

(Go) Get local IP addresses

참고 http://golang-examples.tumblr.com/post/99458329439/get-local-ip-addresses https://gist.github.com/jniltinho/9787946 Sample Code myip.go package main   import ( "fmt" "net" )   func main () { addrs , _ := net . InterfaceAddrs ()   for _ , addr := range addrs { if addr . Network () == "ip+net" { if ipnet , ok := addr . ( * net . IPNet ); ok && ! ipnet . IP . IsLoopback () { if ipnet . IP . To4 () != nil { fmt . Println ( ipnet . IP . String ()) } } } else if addr . Network () == "ip" { if addr . String () != "0.0.0.0" { fmt . Println ( addr . String ()) } } } }