You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

31 lines
636 B

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
}