From 2847bc3271d587efc5549575866c292b41e4518c Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Mon, 1 Mar 2021 20:48:30 +0000 Subject: [PATCH] Add method, header support to http2 transport --- transport/internet/http/dialer.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/transport/internet/http/dialer.go b/transport/internet/http/dialer.go index 12884f648..df3ab1427 100644 --- a/transport/internet/http/dialer.go +++ b/transport/internet/http/dialer.go @@ -94,8 +94,22 @@ func Dial(ctx context.Context, dest net.Destination, streamSettings *internet.Me opts := pipe.OptionsFromContext(ctx) preader, pwriter := pipe.New(opts...) breader := &buf.BufferedReader{Reader: preader} + + httpMethod := "PUT" + if httpSettings.Method != "" { + httpMethod = httpSettings.Method + } + + httpHeaders := make(http.Header) + + for _, httpHeader := range httpSettings.Header { + for _, httpHeaderValue := range httpHeader.Value { + httpHeaders.Set(httpHeader.Name, httpHeaderValue) + } + } + request := &http.Request{ - Method: "PUT", + Method: httpMethod, Host: httpSettings.getRandomHost(), Body: breader, URL: &url.URL{ @@ -106,7 +120,7 @@ func Dial(ctx context.Context, dest net.Destination, streamSettings *internet.Me Proto: "HTTP/2", ProtoMajor: 2, ProtoMinor: 0, - Header: make(http.Header), + Header: httpHeaders, } // Disable any compression method from server. request.Header.Set("Accept-Encoding", "identity")