net/http: using strings.CutPrefix replace strings.HasPrefix and strings.TrimPrefix

Change-Id: I0b7b6e4e9d2539e4fcb5c08430ba5a74733fad3c
Reviewed-on: https://go-review.googlesource.com/c/go/+/435136
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: xie cui <523516579@qq.com>
This commit is contained in:
cuiweixie 2022-09-27 16:06:13 +08:00 committed by Gopher Robot
parent 59bc93535b
commit 2b45aebe14
3 changed files with 7 additions and 6 deletions

View file

@ -82,10 +82,12 @@ func RequestFromMap(params map[string]string) (*http.Request, error) {
// Copy "HTTP_FOO_BAR" variables to "Foo-Bar" Headers // Copy "HTTP_FOO_BAR" variables to "Foo-Bar" Headers
for k, v := range params { for k, v := range params {
if !strings.HasPrefix(k, "HTTP_") || k == "HTTP_HOST" { if k == "HTTP_HOST" {
continue continue
} }
r.Header.Add(strings.ReplaceAll(k[5:], "_", "-"), v) if after, found := strings.CutPrefix(k, "HTTP_"); found {
r.Header.Add(strings.ReplaceAll(after, "_", "-"), v)
}
} }
uriStr := params["REQUEST_URI"] uriStr := params["REQUEST_URI"]

View file

@ -371,8 +371,7 @@ type profileEntry struct {
// Index responds to a request for "/debug/pprof/" with an HTML page // Index responds to a request for "/debug/pprof/" with an HTML page
// listing the available profiles. // listing the available profiles.
func Index(w http.ResponseWriter, r *http.Request) { func Index(w http.ResponseWriter, r *http.Request) {
if strings.HasPrefix(r.URL.Path, "/debug/pprof/") { if name, found := strings.CutPrefix(r.URL.Path, "/debug/pprof/"); found {
name := strings.TrimPrefix(r.URL.Path, "/debug/pprof/")
if name != "" { if name != "" {
handler(name).ServeHTTP(w, r) handler(name).ServeHTTP(w, r)
return return

View file

@ -509,11 +509,11 @@ const TrailerPrefix = "Trailer:"
func (w *response) finalTrailers() Header { func (w *response) finalTrailers() Header {
var t Header var t Header
for k, vv := range w.handlerHeader { for k, vv := range w.handlerHeader {
if strings.HasPrefix(k, TrailerPrefix) { if kk, found := strings.CutPrefix(k, TrailerPrefix); found {
if t == nil { if t == nil {
t = make(Header) t = make(Header)
} }
t[strings.TrimPrefix(k, TrailerPrefix)] = vv t[kk] = vv
} }
} }
for _, k := range w.trailers { for _, k := range w.trailers {