diff --git a/node/gateway/application/backend/layer.go b/node/gateway/application/backend/layer.go index 180e51376c45313df22baa63e12f040c55655b08..41288593ce559c895d5c88e021114a6a1182b547 100644 --- a/node/gateway/application/backend/layer.go +++ b/node/gateway/application/backend/layer.go @@ -44,7 +44,15 @@ func (b *Layer) Send(deadline context.Context, ctx *common.Context, variables *i if method == "FOLLOW" { method = ctx.ProxyRequest.Method } - r, finalTargetServer, retryTargetServers, err := b.Balance.Send(ctx, b.Protocol, method, path, ctx.ProxyRequest.Querys(), ctx.ProxyRequest.Headers(), []byte(body), b.TimeOut, b.Retry) + header:= ctx.ProxyRequest.Headers() + if b.Encode == "json"{ + header.Set("content-type","application/json; charset=utf-8") + } else if b.Encode == "xml" { + header.Set("content-type","application/xml; charset=utf-8") + } + + r, finalTargetServer, retryTargetServers, err := b.Balance.Send(ctx, b.Protocol, method, path, nil, header, []byte(body), b.TimeOut, b.Retry) + if err != nil { return nil, err diff --git a/node/gateway/application/interpreter/reader.go b/node/gateway/application/interpreter/reader.go index fdb9c1fe3661a68c30332524408db2b023c17351..d6d1fa404a8da95dc887a848a0d73983b8602167 100644 --- a/node/gateway/application/interpreter/reader.go +++ b/node/gateway/application/interpreter/reader.go @@ -4,6 +4,7 @@ import ( "fmt" "net/url" "reflect" + "strconv" ) //Reader reder @@ -72,6 +73,15 @@ func find(node *reflect.Value, path []string) string { next := node.MapIndex(key) return find(&next, path[1:]) } + case reflect.Slice: + { + index,err:= strconv.Atoi(path[0]) + if err!= nil{ + return "" + } + next :=node.Index(index) + return find(&next,path[1:]) + } default: return "" }