fix: The request header and the response header are different (#157)

diff --git a/internal/http/header.go b/internal/http/header.go
index e57eb12..bba3145 100644
--- a/internal/http/header.go
+++ b/internal/http/header.go
@@ -21,7 +21,6 @@
 	"net/http"
 
 	"github.com/api7/ext-plugin-proto/go/A6"
-	hrc "github.com/api7/ext-plugin-proto/go/A6/HTTPReqCall"
 	flatbuffers "github.com/google/flatbuffers/go"
 )
 
@@ -83,7 +82,7 @@
 	return h.hdr
 }
 
-func (h *Header) Build(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
+func HeaderBuild(h *Header, builder *flatbuffers.Builder) []flatbuffers.UOffsetT {
 	var hdrs []flatbuffers.UOffsetT
 
 	// deleted
@@ -108,12 +107,5 @@
 		}
 	}
 
-	size := len(hdrs)
-	hrc.RewriteStartHeadersVector(builder, size)
-	for i := size - 1; i >= 0; i-- {
-		te := hdrs[i]
-		builder.PrependUOffsetT(te)
-	}
-
-	return builder.EndVector(size)
+	return hdrs
 }
diff --git a/internal/http/request.go b/internal/http/request.go
index 21295a3..5b965fa 100644
--- a/internal/http/request.go
+++ b/internal/http/request.go
@@ -215,7 +215,16 @@
 
 	var hdrVec, respHdrVec flatbuffers.UOffsetT
 	if r.hdr != nil {
-		hdrVec = r.hdr.Build(builder)
+		hdrs := HeaderBuild(r.hdr, builder)
+
+		size := len(hdrs)
+		hrc.RewriteStartHeadersVector(builder, size)
+		for i := size - 1; i >= 0; i-- {
+			te := hdrs[i]
+			builder.PrependUOffsetT(te)
+		}
+
+		hdrVec = builder.EndVector(size)
 	}
 
 	if r.respHdr != nil {
diff --git a/internal/http/response.go b/internal/http/response.go
index c48fbaf..508481d 100644
--- a/internal/http/response.go
+++ b/internal/http/response.go
@@ -202,7 +202,16 @@
 
 	var hdrVec flatbuffers.UOffsetT
 	if r.hdr != nil {
-		hdrVec = r.hdr.Build(builder)
+		hdrs := HeaderBuild(r.hdr, builder)
+
+		size := len(hdrs)
+		hrc.RespStartHeadersVector(builder, size)
+		for i := size - 1; i >= 0; i-- {
+			te := hdrs[i]
+			builder.PrependUOffsetT(te)
+		}
+
+		hdrVec = builder.EndVector(size)
 	}
 
 	var bodyVec flatbuffers.UOffsetT