package httpx import "net/http" const xForwardedFor = "X-Forwarded-For" func GetFormValues(r *http.Request) (map[string]any, error) { if err := r.ParseForm(); err != nil { return nil, err } if err := r.ParseMultipartForm(maxMemory); err != nil { if err != http.ErrNotMultipart { return nil, err } } params := make(map[string]any, len(r.Form)) for name := range r.Form { formValue := r.Form.Get(name) if len(formValue) > 0 { params[name] = formValue } } return params, nil } func GetRemoteAddr(r *http.Request) string { v := r.Header.Get(xForwardedFor) if len(v) > 0 { return v } return r.RemoteAddr }