Как разобрать несколько параметров в URL в GoLang? - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок в Go. Поэтому, пожалуйста, приведите пример с вашим ответом. Я использую julienschmidt / httprouter. Я могу проанализировать один параметр с этим, но как я могу проанализировать несколько параметров, используя эту или любую другую библиотеку? Вывод, который я хочу получить, состоит в том, чтобы получить dgff@vcv.com & dccccf по этому URL: -> http://localhost:8080/login?id=dgff@vcv.com&pwd=dccccf

мой код: - https://github.com/mohit810/prog-1

Я пытался r.GET("/login",uc.LoginUser) в основном. go и в контроллерах / пользователя. 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 Ответ

1 голос
/ 28 апреля 2020

Добавьте следующее в main. go

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

и добавьте следующее в контроллеры / пользователя. 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)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...