Как получить значение запроса, в котором есть пробел
Имею url по типу ../upload?tag=..
Нужно получить значение тега Что есть сейчас:
route.HandleFunc("/upload", Handler.Upload).Methods(http.MethodPost)
И далее в функции вытаскиваю тег так:
tag := r.URL.Query().Get("tag")
Работает только в том случае, если передается тег без пробела. Как можно решить проблему?
Весь код с ошибкой: main:
func NewServer(settings *config.Settings) *Server {
return &Server{
settings: settings,
}
}
type Server struct {
server *http.Server
settings *config.Settings
}
func (s *Server) StartServer() {
mux := NewMux()
route := mux.StartRouter()
s.server = &http.Server{
Addr: fmt.Sprintf(":%d", s.settings.Port),
Handler: route,
}
go s.server.ListenAndServe()
fmt.Printf("HTTP server started on %d\n", s.settings.Port)
}
func (s *Server) StopServer() {
s.server.Close()
fmt.Printf("HTTP server stopped\n")
}
mux:
func NewMux() *Mux {
return &Mux{
}
}
type Mux struct {
}
func (m *Mux) StartRouter() *mux.Router {
route := mux.NewRouter()
handler := handlers.NewHandler()
route.HandleFunc("/upload", handler.Upload).Methods(http.MethodPost)
return route
}
handler:
type Handler struct {
}
func NewHandler() *Handler {
return &Handler{
}
}
func (h *Handler) Upload(w http.ResponseWriter, r *http.Request) {
tag := r.URL.Query().Get("tag")
if tag != "" {
}
}
Если тэг без пробела - ок, если с пробелом - 500 (Например ошибка при такой ссылке: ../upload?tag=f%20f