github.com/hduhelp/go-zero@v1.4.3/gateway/internal/headerprocessor.go (about) 1 package internal 2 3 import ( 4 "fmt" 5 "net/http" 6 "strings" 7 ) 8 9 const ( 10 metadataHeaderPrefix = "Grpc-Metadata-" 11 metadataPrefix = "gateway-" 12 ) 13 14 // ProcessHeaders builds the headers for the gateway from HTTP headers. 15 func ProcessHeaders(header http.Header) []string { 16 var headers []string 17 18 for k, v := range header { 19 if !strings.HasPrefix(k, metadataHeaderPrefix) { 20 continue 21 } 22 23 key := fmt.Sprintf("%s%s", metadataPrefix, strings.TrimPrefix(k, metadataHeaderPrefix)) 24 for _, vv := range v { 25 headers = append(headers, key+":"+vv) 26 } 27 } 28 29 return headers 30 }