Skip to content

Commit c80b40d

Browse files
committed
Fix. UTF-8 issue for StringHttpMessageConverter
1 parent 9664ebd commit c80b40d

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

client/src/main/java/com/jaspersoft/android/sdk/client/JsRestClient.java

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,12 @@
6464
import org.springframework.http.client.ClientHttpRequestInterceptor;
6565
import org.springframework.http.client.ClientHttpResponse;
6666
import org.springframework.http.client.SimpleClientHttpRequestFactory;
67+
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
68+
import org.springframework.http.converter.FormHttpMessageConverter;
6769
import org.springframework.http.converter.HttpMessageConverter;
6870
import org.springframework.http.converter.HttpMessageNotReadableException;
71+
import org.springframework.http.converter.ResourceHttpMessageConverter;
72+
import org.springframework.http.converter.StringHttpMessageConverter;
6973
import org.springframework.http.converter.xml.SimpleXmlHttpMessageConverter;
7074
import org.springframework.util.FileCopyUtils;
7175
import org.springframework.web.client.HttpStatusCodeException;
@@ -81,6 +85,7 @@
8185
import java.net.URI;
8286
import java.net.URISyntaxException;
8387
import java.net.URLEncoder;
88+
import java.nio.charset.Charset;
8489
import java.util.ArrayList;
8590
import java.util.Iterator;
8691
import java.util.List;
@@ -110,7 +115,6 @@ public class JsRestClient {
110115
public static final String REST_REPORT_STATUS = "/status";
111116
public static final String REST_THUMBNAILS = "/thumbnails";
112117

113-
private SimpleXmlHttpMessageConverter simpleXmlHttpMessageConverter;
114118

115119
// the timeout in milliseconds until a connection is established
116120
private int connectTimeout = 15 * 1000;
@@ -129,7 +133,7 @@ public class JsRestClient {
129133
//---------------------------------------------------------------------
130134

131135
public JsRestClient() {
132-
this(new RestTemplate(true), new SimpleClientHttpRequestFactory());
136+
this(new RestTemplate(false), new SimpleClientHttpRequestFactory());
133137
}
134138

135139
public JsRestClient(RestTemplate restTemplate) {
@@ -140,9 +144,7 @@ public JsRestClient(RestTemplate restTemplate,
140144
SimpleClientHttpRequestFactory factory) {
141145
this.restTemplate = restTemplate;
142146
this.requestFactory = factory;
143-
144-
fetchXmlConverter();
145-
configureAnnotationStrategy();
147+
configureMessageConverters();
146148
}
147149

148150
//---------------------------------------------------------------------
@@ -1235,22 +1237,24 @@ private String generateInputControlsUrl(String reportUri, List<String> controlsI
12351237
return fullUri.toString();
12361238
}
12371239

1238-
private void fetchXmlConverter() {
1239-
List<HttpMessageConverter<?>> converters = restTemplate.getMessageConverters();
1240-
for (HttpMessageConverter<?> converter : converters) {
1241-
if (converter instanceof SimpleXmlHttpMessageConverter) {
1242-
simpleXmlHttpMessageConverter =
1243-
(SimpleXmlHttpMessageConverter) converter;
1244-
}
1245-
}
1240+
private void configureMessageConverters() {
1241+
List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();
1242+
messageConverters.add(new ByteArrayHttpMessageConverter());
1243+
messageConverters.add(new StringHttpMessageConverter(Charset.forName("UTF-8")));
1244+
messageConverters.add(new ResourceHttpMessageConverter());
1245+
messageConverters.add(new FormHttpMessageConverter());
1246+
1247+
SimpleXmlHttpMessageConverter simpleXmlHttpMessageConverter
1248+
= new SimpleXmlHttpMessageConverter();
1249+
configureAnnotationStrategy(simpleXmlHttpMessageConverter);
1250+
messageConverters.add(simpleXmlHttpMessageConverter);
12461251
}
12471252

1248-
private void configureAnnotationStrategy() {
1249-
if (simpleXmlHttpMessageConverter != null) {
1250-
Strategy annotationStrategy = new AnnotationStrategy();
1251-
Serializer serializer = new Persister(annotationStrategy);
1252-
simpleXmlHttpMessageConverter.setSerializer(serializer);
1253-
}
1253+
private void configureAnnotationStrategy(
1254+
SimpleXmlHttpMessageConverter simpleXmlHttpMessageConverter) {
1255+
Strategy annotationStrategy = new AnnotationStrategy();
1256+
Serializer serializer = new Persister(annotationStrategy);
1257+
simpleXmlHttpMessageConverter.setSerializer(serializer);
12541258
}
12551259

12561260
//---------------------------------------------------------------------

0 commit comments

Comments
 (0)