Когда я использую http://localhost:8080/login?id=ddfd@vcv.com&pwd=dccccf
в почтальоне или использую его в приложении android, я получаю 404
. На curl я получаю
{"name":"Miss Moneypenny","email":"ddfd@vcv.com","password":"dccccf","mobile":27,"address":"dscsdacc"}
Я не могу понять, что я могу сделать, чтобы добиться вывода json в почтальоне и на других платформах, таких как приложения в ios, а также android, когда я использую этот api, а также в окне браузера.
My Main. go код
func getSession() *mgo.Session {
s, err := mgo.Dial("mongodb://localhost")
if err != nil {
panic(err)
}
return s
}
func main() {
r := httprouter.New()
uc := controllers.NewUserController(getSession())
r.GET("/login", uc.LoginUser)
http.ListenAndServe(":8080", r)
}
код в контроллере / пользователе. go
type UserController struct {
session *mgo.Session
}
func NewUserController(s *mgo.Session) *UserController {
return &UserController{s}
}
func (uc UserController) LoginUser(w http.ResponseWriter, request *http.Request, params httprouter.Params) {
dump,err :=httputil.DumpRequest(request, true)
if err != nil {
http.Error(w, fmt.Sprint(err), http.StatusInternalServerError)
return
}
fmt.Println("Request Dump:\n", string(dump))
encodedValue := request.URL.Query().Get("id")
pwd := request.URL.Query().Get("pwd")
emailId, err := url.QueryUnescape(encodedValue)
if err != nil {
log.Fatal(err)
return
}
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
type User struct {
Name string `json:"name" bson:"name"`
Email string `json:"email" bson:"_id"`
Password string `json:"password" bson:"password"`
Mobile int `json:"mobile" bson:"mobile"`
Address string `json:"address" bson:"address"`
}
После использования дампа, когда я использую, я использую curl 'http://localhost: 8080 / login? id=ddfd@vcv.com&pwd=dccccf' Я получаю: -
Request Dump:
GET /login?id=ddfd@vcv.com&pwd=dccccf HTTP/1.1
Host: localhost:8080
Accept: */*
User-Agent: curl/7.69.1
После использования дампа, когда я использую, я использую http://localhost: 8080 / login? id=ddfd@vcv.com&pwd=dccccf в почтальоне, я получаю: -
Request Dump:
GET /login?id=ddfd@vcv.com&pwd=dccccf HTTP/1.1
Host: localhost:8080
Accept: */*
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Postman-Token: 8e925738-b8db-4656-9f53-813f4cd53a80
User-Agent: PostmanRuntime/7.24.1