doufu1950 2016-04-07 22:02
浏览 19

如何扩展现有结构?

I want to extend the http.Request structure to include arguments present in the url. I know there are excellent libraries like gorilla that already do this, but I want to learn how its done on the nuts and bolts level.

Here's an example of what I'm trying to do:

// server.go

func Vars(r *http.Request) map[string]string {
    var args map[string]string
    args = make(map[string]string)
    s := r.URL.Path.split('/')[1:]
    for str := range s {
        _, arg, _ := regexp.MatchString("\{\w+\}", str)
        append(args, arg)
    }

    return args
}

httpMock.HandleFunc("/myurl/{arg1}/", MyHandler)

func MyHandler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Success! " + r.Vars()["arg1"]))
}

But I get an index out of range exception. Can anyone help me figure out how to do this?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
    • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
    • ¥500 火焰左右视图、视差(基于双目相机)
    • ¥100 set_link_state
    • ¥15 虚幻5 UE美术毛发渲染
    • ¥15 CVRP 图论 物流运输优化
    • ¥15 Tableau online 嵌入ppt失败
    • ¥100 支付宝网页转账系统不识别账号
    • ¥15 基于单片机的靶位控制系统
    • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)