diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java index d7dfdccfc0..a67048011b 100644 --- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java +++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java @@ -84,6 +84,7 @@ public VertxServerRequestToHttpServletRequest(RoutingContext context) { public void setBodyBuffer(Buffer bodyBuffer) { super.setBodyBuffer(bodyBuffer); context.setBody(bodyBuffer); + this.inputStream = null; } @Override diff --git a/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CseClientHttpRequest.java b/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CseClientHttpRequest.java index 119139171a..036120668e 100644 --- a/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CseClientHttpRequest.java +++ b/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/CseClientHttpRequest.java @@ -112,6 +112,12 @@ public void setRequestBody(Object requestBody) { this.requestBody = requestBody; } + public void setHttpHeaders(HttpHeaders headers) { + if (headers != null) { + this.httpHeaders = headers; + } + } + @Override public HttpMethod getMethod() { return method; diff --git a/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncRequestCallback.java b/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncRequestCallback.java index 1ca4b4c2a5..e434bd0b9c 100644 --- a/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncRequestCallback.java +++ b/providers/provider-springmvc/src/main/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncRequestCallback.java @@ -34,6 +34,7 @@ public void doWithRequest(AsyncClientHttpRequest request) { CseAsyncClientHttpRequest cseAsyncClientHttpRequest = (CseAsyncClientHttpRequest) request; if (requestBody != null) { cseAsyncClientHttpRequest.setRequestBody(requestBody.getBody()); + cseAsyncClientHttpRequest.setHttpHeaders(requestBody.getHeaders()); } if (!CseHttpEntity.class.isInstance(requestBody)) { diff --git a/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java b/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java index aadf55f60f..aa07300523 100644 --- a/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java +++ b/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java @@ -32,6 +32,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -84,8 +85,10 @@ protected Response doInvoke(Invocation invocation) { } }; byte[] body = "abc".getBytes(); + HttpHeaders headers = new HttpHeaders(); + headers.add("token", "123"); client.setRequestBody(body); - + client.setHttpHeaders(headers); client.execute(); Assert.assertArrayEquals(body, holder.value.getSwaggerArgument(0));