code: func requestData(req *http.Request) *Request {
  	var (
  		scheme = "http"
  		host   = req.Host
  	)
  	if len(req.URL.Scheme) > 0 {
  		scheme = req.URL.Scheme
  	}
  	if len(req.URL.Host) > 0 {
  		host = req.URL.Host
  	}
  
  	return &Request{
  		Method:        req.Method,
  		URL:           fmt.Sprintf("%s://%s%s", scheme, host, req.URL.Path),
  		ClientIP:      getIP(req),
  		UserAgent:     req.UserAgent(),
  		ContentLength: req.ContentLength,
  	}
  }
docs: // requestData creates a Request from a http.Request.