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() }
2015-11-18
(Go) 웹서비스에 POST 요청으로 값 넘겨서 처리하기
(beego) JSON Response 작성하기
- 샘플 코드
func (c *HappeningController) Get() { data := map[string]interface{}{ "test": "test", "num": 23, "array": []string{"one", "two"}, } c.Data["json"] = &data c.ServeJson() }
- 결과
{ "test":"test", "number": 23, "array":["one", "two"] }
- 참고
2015-11-13
(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 로 매핑해야 한다.
2015-11-03
(Go) Get local IP addresses
- 참고
- 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()) } } } }
피드 구독하기:
글 (Atom)