为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
浮云间 2022-06-01 15:10:15
我是围棋新手。因此,请提供一个示例和您的答案。我正在使用 julienschmidt/httprouter。我可以用这个解析一个参数,但是如何使用这个或任何其他库解析多个参数?我想要实现的输出是从这个 url获取dgff@vcv.com& :->dccccfhttp://localhost:8080/login?id=dgff@vcv.com&pwd=dccccf我的代码在:- https://github.com/mohit810/prog-1我尝试r.GET("/login",uc.LoginUser)在 main.go 和 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)}
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

在 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)


}


查看完整回答
反对 回复 2022-06-01
  • 1 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信