go - 如何在GoLang中解析url中的多个参数?

标签 go url url-routing httprouter

我是Go的新手。因此,请提供一个答案示例。我正在使用julienschmidt / httprouter。我可以以此解析一个参数,但是如何使用这个或任何其他库解析多个参数呢?我要实现的输出是从此url获取dgff@vcv.comdccccf:-> http://localhost:8080/login?id=dgff@vcv.com&pwd=dccccf
我的代码在:-https://github.com/mohit810/prog-1

我在main.go中尝试了r.GET("/login",uc.LoginUser)
在controllers / user.go中我添加了

func (uc UserController) LoginUser(w http.ResponseWriter, request *http.Request, params httprouter.Params) {
    emailId := params.ByName("id")
    pwd := params.ByName("pwd")

    u := models.User{}

    if err := uc.session.DB("go-web-dev-db").C("users").FindId(emailId + pwd).One(&u); err != nil {
        w.WriteHeader(404)
        return
    }

    uj, err := json.Marshal(u)
    if err != nil {
        fmt.Println(err)
    }

    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusOK) // 200
    fmt.Fprintf(w, "%s\n", uj)
}

最佳答案

在main.go中添加以下内容

r.GET("/login",uc.LoginUser)

并在controllers / user.go中添加以下内容
 func (uc UserController) LoginUser(w http.ResponseWriter, request *http.Request, params httprouter.Params) {
 emailId := request.URL.Query().Get("id")
 pwd := request.URL.Query().Get("pwd")

u := models.User{}

if err := uc.session.DB("go-web-dev-db").C("users").FindId(emailId + pwd).One(&u); err != nil {
    w.WriteHeader(404)
    return
}

uj, err := json.Marshal(u)
if err != nil {
    fmt.Println(err)
}

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK) // 200
fmt.Fprintf(w, "%s\n", uj)

}

关于go - 如何在GoLang中解析url中的多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478839/

相关文章:

asp.net - 如何阻止 IIS 解码 URL

go - 如何控制 gin 1.4.0+ 中缺少 URL 参数的行为?

go - 使用ssh将带有标志的本地脚本运行到远程计算机

Android、Golang 和 SSL

mysql - 如何在 WSO2 数据服务服务器中链接外部 MySQL 数据库

php - 增加 VARCHAR 长度或使用 php 处理问题?

python - 如何检查 URL 是否可下载?

php - 自定义锂路由场景

Unix FIFO 在吗?

postgresql - golang在for循环中追加问题