gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/server/rpc_response.go (about) 1 package server 2 3 import ( 4 "net/http" 5 6 "gitee.com/liuxuezhan/go-micro-v1.18.0/codec" 7 "gitee.com/liuxuezhan/go-micro-v1.18.0/transport" 8 ) 9 10 type rpcResponse struct { 11 header map[string]string 12 socket transport.Socket 13 codec codec.Codec 14 } 15 16 func (r *rpcResponse) Codec() codec.Writer { 17 return r.codec 18 } 19 20 func (r *rpcResponse) WriteHeader(hdr map[string]string) { 21 for k, v := range hdr { 22 r.header[k] = v 23 } 24 } 25 26 func (r *rpcResponse) Write(b []byte) error { 27 if _, ok := r.header["Content-Type"]; !ok { 28 r.header["Content-Type"] = http.DetectContentType(b) 29 } 30 31 return r.socket.Send(&transport.Message{ 32 Header: r.header, 33 Body: b, 34 }) 35 }