You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/06/11 08:29:10 UTC
[incubator-servicecomb-java-chassis] 01/04: [SCB-203] avoid servlet
can not read chinese file name
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit 28c9ddb0c173718338922a7417088952d19a62e8
Author: wujimin <wu...@huawei.com>
AuthorDate: Tue Jun 5 17:16:50 2018 +0800
[SCB-203] avoid servlet can not read chinese file name
---
.../rest/codec/param/RestClientRequestImpl.java | 2 +-
.../codec/param/TestRestClientRequestImpl.java | 27 ++++++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java
index 505d84e..073032b 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java
@@ -103,7 +103,7 @@ public class RestClientRequestImpl implements RestClientRequest {
request.setChunked(true);
String boundary = "boundary" + UUID.randomUUID().toString();
- putHeader(CONTENT_TYPE, MULTIPART_FORM_DATA + "; boundary=" + boundary);
+ putHeader(CONTENT_TYPE, MULTIPART_FORM_DATA + "; charset=UTF-8; boundary=" + boundary);
genBodyForm(boundary);
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
index d14c10e..137063f 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
@@ -16,7 +16,9 @@
*/
package org.apache.servicecomb.common.rest.codec.param;
+import java.util.HashMap;
import java.util.Map;
+import java.util.UUID;
import javax.servlet.http.Part;
import javax.ws.rs.core.MediaType;
@@ -141,4 +143,29 @@ public class TestRestClientRequestImpl {
Map<String, Part> uploads = Deencapsulation.getField(restClientRequest, "uploads");
Assert.assertTrue(uploads.isEmpty());
}
+
+ @Test
+ public void doEndWithUpload() {
+ Map<String, String> headers = new HashMap<>();
+ new MockUp<HttpClientRequest>(request) {
+ @Mock
+ HttpClientRequest putHeader(String name, String value) {
+ headers.put(name, value);
+ return request;
+ }
+ };
+
+ UUID uuid = new UUID(0, 0);
+ new Expectations(UUID.class) {
+ {
+ UUID.randomUUID();
+ result = uuid;
+ }
+ };
+ RestClientRequestImpl restClientRequest = new RestClientRequestImpl(request, null, null);
+ restClientRequest.doEndWithUpload();
+
+ Assert.assertEquals("multipart/form-data; charset=UTF-8; boundary=boundary00000000-0000-0000-0000-000000000000",
+ headers.get(HttpHeaders.CONTENT_TYPE.toString()));
+ }
}
--
To stop receiving notification emails like this one, please contact
liubao@apache.org.