Skip to content

Commit 6ceaaab

Browse files
committed
add DisableHTTPHeader field
1 parent bfab4ee commit 6ceaaab

File tree

3 files changed

+52
-33
lines changed

3 files changed

+52
-33
lines changed

rpc/http/fasthttp/transport.go

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
| |
77
| rpc/http/fasthttp/transport.go |
88
| |
9-
| LastModified: Mar 6, 2022 |
9+
| LastModified: Mar 7, 2022 |
1010
| Author: Ma Bingyao <[email protected]> |
1111
| |
1212
\*________________________________________________________*/
@@ -26,10 +26,11 @@ import (
2626
)
2727

2828
type Transport struct {
29-
Header http.Header
30-
FastHTTPClient fasthttp.Client
31-
compression bool
32-
keepAlive bool
29+
DisableHTTPHeader bool
30+
Header http.Header
31+
FastHTTPClient fasthttp.Client
32+
compression bool
33+
keepAlive bool
3334
*cookieManager
3435
}
3536

@@ -56,11 +57,13 @@ func (trans *Transport) Transport(ctx context.Context, request []byte) (response
5657
req.Header.SetMethod("POST")
5758
req.SetRequestURI(clientContext.URL.String())
5859
req.SetBody(request)
59-
if trans.Header != nil {
60-
addRequestHeader(&req.Header, trans.Header)
61-
}
62-
if header, ok := clientContext.Items().GetInterface("httpRequestHeaders").(http.Header); ok {
63-
addRequestHeader(&req.Header, header)
60+
if !trans.DisableHTTPHeader {
61+
if trans.Header != nil {
62+
addRequestHeader(&req.Header, trans.Header)
63+
}
64+
if header, ok := clientContext.Items().GetInterface("httpRequestHeaders").(http.Header); ok {
65+
addRequestHeader(&req.Header, header)
66+
}
6467
}
6568
if trans.keepAlive {
6669
req.Header.Set("Connection", "keep-alive")
@@ -90,7 +93,9 @@ func (trans *Transport) Transport(ctx context.Context, request []byte) (response
9093
clientContext.Items().Set("httpStatusText", string(resp.Header.StatusMessage()))
9194
switch resp.Header.StatusCode() {
9295
case fasthttp.StatusOK:
93-
clientContext.Items().Set("httpResponseHeaders", getResponseHeader(&resp.Header))
96+
if !trans.DisableHTTPHeader {
97+
clientContext.Items().Set("httpResponseHeaders", getResponseHeader(&resp.Header))
98+
}
9499
return resp.SwapBody(nil), nil
95100
case fasthttp.StatusRequestEntityTooLarge:
96101
return nil, core.ErrRequestEntityTooLarge

rpc/http/handler.go

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
| |
77
| rpc/http/handler.go |
88
| |
9-
| LastModified: Mar 6, 2022 |
9+
| LastModified: Mar 7, 2022 |
1010
| Author: Ma Bingyao <[email protected]> |
1111
| |
1212
\*________________________________________________________*/
@@ -36,6 +36,7 @@ type Handler struct {
3636
P3P bool
3737
GET bool
3838
CrossDomain bool
39+
DisableHTTPHeader bool
3940
Header http.Header
4041
AccessControlAllowOrigins map[string]bool
4142
LastModified string
@@ -214,11 +215,13 @@ func (h *Handler) sendHeader(serviceContext *core.ServiceContext, response http.
214215
responseHeader.Set("Access-Control-Allow-Origin", "*")
215216
}
216217
}
217-
if h.Header != nil {
218-
addHeader(responseHeader, h.Header)
219-
}
220-
if header, ok := serviceContext.Items().GetInterface("httpResponseHeaders").(http.Header); ok {
221-
addHeader(responseHeader, header)
218+
if !h.DisableHTTPHeader {
219+
if h.Header != nil {
220+
addHeader(responseHeader, h.Header)
221+
}
222+
if header, ok := serviceContext.Items().GetInterface("httpResponseHeaders").(http.Header); ok {
223+
addHeader(responseHeader, header)
224+
}
222225
}
223226
if code := serviceContext.Items().GetInt("httpStatusCode"); code != 0 {
224227
response.WriteHeader(code)
@@ -229,7 +232,9 @@ func (h *Handler) getServiceContext(response http.ResponseWriter, request *http.
229232
serviceContext := core.NewServiceContext(h.Service)
230233
serviceContext.Items().Set("request", request)
231234
serviceContext.Items().Set("response", response)
232-
serviceContext.Items().Set("httpRequestHeaders", request.Header)
235+
if !h.DisableHTTPHeader {
236+
serviceContext.Items().Set("httpRequestHeaders", request.Header)
237+
}
233238
serviceContext.LocalAddr, _ = net.ResolveTCPAddr("tcp", request.Host)
234239
serviceContext.RemoteAddr, _ = net.ResolveTCPAddr("tcp", request.RemoteAddr)
235240
serviceContext.Handler = h
@@ -338,11 +343,13 @@ func (h *Handler) sendFastHTTPHeader(serviceContext *core.ServiceContext, ctx *f
338343
ctx.Response.Header.Set("Access-Control-Allow-Origin", "*")
339344
}
340345
}
341-
if h.Header != nil {
342-
addResponseHeader(&ctx.Response.Header, h.Header)
343-
}
344-
if header, ok := serviceContext.Items().GetInterface("httpResponseHeaders").(http.Header); ok {
345-
addResponseHeader(&ctx.Response.Header, header)
346+
if !h.DisableHTTPHeader {
347+
if h.Header != nil {
348+
addResponseHeader(&ctx.Response.Header, h.Header)
349+
}
350+
if header, ok := serviceContext.Items().GetInterface("httpResponseHeaders").(http.Header); ok {
351+
addResponseHeader(&ctx.Response.Header, header)
352+
}
346353
}
347354
if code := serviceContext.Items().GetInt("httpStatusCode"); code != 0 {
348355
ctx.SetStatusCode(code)
@@ -352,7 +359,9 @@ func (h *Handler) sendFastHTTPHeader(serviceContext *core.ServiceContext, ctx *f
352359
func (h *Handler) getFastHTTPServiceContext(ctx *fasthttp.RequestCtx) *core.ServiceContext {
353360
serviceContext := core.NewServiceContext(h.Service)
354361
serviceContext.Items().Set("requestCtx", ctx)
355-
serviceContext.Items().Set("httpRequestHeaders", getRequestHeader(&ctx.Request.Header))
362+
if !h.DisableHTTPHeader {
363+
serviceContext.Items().Set("httpRequestHeaders", getRequestHeader(&ctx.Request.Header))
364+
}
356365
serviceContext.LocalAddr, _ = net.ResolveTCPAddr("tcp", convert.ToUnsafeString(ctx.Host()))
357366
serviceContext.RemoteAddr = ctx.RemoteAddr()
358367
serviceContext.Handler = h

rpc/http/transport.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
| |
77
| rpc/http/transport.go |
88
| |
9-
| LastModified: May 5, 2021 |
9+
| LastModified: Mar 7, 2022 |
1010
| Author: Ma Bingyao <[email protected]> |
1111
| |
1212
\*________________________________________________________*/
@@ -28,8 +28,9 @@ import (
2828
)
2929

3030
type Transport struct {
31-
Header http.Header
32-
HTTPClient http.Client
31+
DisableHTTPHeader bool
32+
Header http.Header
33+
HTTPClient http.Client
3334
}
3435

3536
func (trans *Transport) Transport(ctx context.Context, request []byte) ([]byte, error) {
@@ -38,11 +39,13 @@ func (trans *Transport) Transport(ctx context.Context, request []byte) ([]byte,
3839
if err != nil {
3940
return nil, err
4041
}
41-
if trans.Header != nil {
42-
addHeader(req.Header, trans.Header)
43-
}
44-
if header, ok := clientContext.Items().GetInterface("httpRequestHeaders").(http.Header); ok {
45-
addHeader(req.Header, header)
42+
if !trans.DisableHTTPHeader {
43+
if trans.Header != nil {
44+
addHeader(req.Header, trans.Header)
45+
}
46+
if header, ok := clientContext.Items().GetInterface("httpRequestHeaders").(http.Header); ok {
47+
addHeader(req.Header, header)
48+
}
4649
}
4750
var resp *http.Response
4851
resp, err = trans.HTTPClient.Do(req)
@@ -54,7 +57,9 @@ func (trans *Transport) Transport(ctx context.Context, request []byte) ([]byte,
5457
clientContext.Items().Set("httpStatusText", http.StatusText(resp.StatusCode))
5558
switch resp.StatusCode {
5659
case http.StatusOK:
57-
clientContext.Items().Set("httpResponseHeaders", resp.Header)
60+
if !trans.DisableHTTPHeader {
61+
clientContext.Items().Set("httpResponseHeaders", resp.Header)
62+
}
5863
return readAll(resp.Body, resp.ContentLength)
5964
case http.StatusRequestEntityTooLarge:
6065
return nil, core.ErrRequestEntityTooLarge

0 commit comments

Comments
 (0)